From ef4e9fabf9410dc5630dee8220f281089c941495 Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Tue, 2 Jan 2024 14:13:47 +0100 Subject: [PATCH] fix: Unwrap boxed JNI types directly (#2337) * fix: Unwrap boxed JNI types directly * Update JSIJNIConversion.cpp --- .../cpp/frameprocessor/JSIJNIConversion.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/package/android/src/main/cpp/frameprocessor/JSIJNIConversion.cpp b/package/android/src/main/cpp/frameprocessor/JSIJNIConversion.cpp index 5f0fae0..1d4039d 100644 --- a/package/android/src/main/cpp/frameprocessor/JSIJNIConversion.cpp +++ b/package/android/src/main/cpp/frameprocessor/JSIJNIConversion.cpp @@ -103,21 +103,20 @@ jsi::Value JSIJNIConversion::convertJNIObjectToJSIValue(jsi::Runtime& runtime, c } else if (object->isInstanceOf(jni::JBoolean::javaClassStatic())) { // Boolean - static const auto getBooleanFunc = jni::findClassLocal("java/lang/Boolean")->getMethod("booleanValue"); - auto boolean = getBooleanFunc(object.get()); - return jsi::Value(boolean == true); + auto boxed = static_ref_cast(object); + bool value = boxed->value(); + return jsi::Value(value); } else if (object->isInstanceOf(jni::JDouble::javaClassStatic())) { // Double - static const auto getDoubleFunc = jni::findClassLocal("java/lang/Double")->getMethod("doubleValue"); - auto d = getDoubleFunc(object.get()); - return jsi::Value(d); + auto boxed = static_ref_cast(object); + double value = boxed->value(); + return jsi::Value(value); } else if (object->isInstanceOf(jni::JInteger::javaClassStatic())) { // Integer - static const auto getIntegerFunc = jni::findClassLocal("java/lang/Integer")->getMethod("intValue"); - auto i = getIntegerFunc(object.get()); - return jsi::Value(i); + auto boxed = static_ref_cast(object); + return jsi::Value(boxed->value()); } else if (object->isInstanceOf(jni::JString::javaClassStatic())) { // String