@@ -35,14 +35,14 @@ Local<Value> ArrayElementAccessor::GetArrayElement(Isolate *isolate, const Local
3535 jbooleanArray boolArr = static_cast <jbooleanArray>(arr);
3636 jboolean boolArrValue;
3737 env.GetBooleanArrayRegion (boolArr, startIndex, length, &boolArrValue);
38- value = ConvertToJsValue (objectManager, env, elementSignature, &boolArrValue);
38+ value = ConvertToJsValue (isolate, objectManager, env, elementSignature, &boolArrValue);
3939 }
4040 else if (elementSignature == " B" )
4141 {
4242 jbyteArray byteArr = static_cast <jbyteArray>(arr);
4343 jbyte byteArrValue;
4444 env.GetByteArrayRegion (byteArr, startIndex, length, &byteArrValue);
45- value = ConvertToJsValue (objectManager, env, elementSignature, &byteArrValue);
45+ value = ConvertToJsValue (isolate, objectManager, env, elementSignature, &byteArrValue);
4646 }
4747 else if (elementSignature == " C" )
4848 {
@@ -51,48 +51,48 @@ Local<Value> ArrayElementAccessor::GetArrayElement(Isolate *isolate, const Local
5151 env.GetCharArrayRegion (charArr, startIndex, length, &charArrValue);
5252 JniLocalRef s (env.NewString (&charArrValue, 1 ));
5353 const char * singleChar = env.GetStringUTFChars (s, &isCopy);
54- value = ConvertToJsValue (objectManager, env, elementSignature, singleChar);
54+ value = ConvertToJsValue (isolate, objectManager, env, elementSignature, singleChar);
5555 env.ReleaseStringUTFChars (s, singleChar);
5656 }
5757 else if (elementSignature == " S" )
5858 {
5959 jshortArray shortArr = static_cast <jshortArray>(arr);
6060 jshort shortArrValue;
6161 env.GetShortArrayRegion (shortArr, startIndex, length, &shortArrValue);
62- value = ConvertToJsValue (objectManager, env, elementSignature, &shortArrValue);
62+ value = ConvertToJsValue (isolate, objectManager, env, elementSignature, &shortArrValue);
6363 }
6464 else if (elementSignature == " I" )
6565 {
6666 jintArray intArr = static_cast <jintArray>(arr);
6767 jint intArrValue;
6868 env.GetIntArrayRegion (intArr, startIndex, length, &intArrValue);
69- value = ConvertToJsValue (objectManager, env, elementSignature, &intArrValue);
69+ value = ConvertToJsValue (isolate, objectManager, env, elementSignature, &intArrValue);
7070 }
7171 else if (elementSignature == " J" )
7272 {
7373 jlongArray longArr = static_cast <jlongArray>(arr);
7474 jlong longArrValue;
7575 env.GetLongArrayRegion (longArr, startIndex, length, &longArrValue);
76- value = ConvertToJsValue (objectManager, env, elementSignature, &longArrValue);
76+ value = ConvertToJsValue (isolate, objectManager, env, elementSignature, &longArrValue);
7777 }
7878 else if (elementSignature == " F" )
7979 {
8080 jfloatArray floatArr = static_cast <jfloatArray>(arr);
8181 jfloat floatArrValue;
8282 env.GetFloatArrayRegion (floatArr, startIndex, length, &floatArrValue);
83- value = ConvertToJsValue (objectManager, env, elementSignature, &floatArrValue);
83+ value = ConvertToJsValue (isolate, objectManager, env, elementSignature, &floatArrValue);
8484 }
8585 else if (elementSignature == " D" )
8686 {
8787 jdoubleArray doubleArr = static_cast <jdoubleArray>(arr);
8888 jdouble doubleArrValue;
8989 env.GetDoubleArrayRegion (doubleArr, startIndex, length, &doubleArrValue);
90- value = ConvertToJsValue (objectManager, env, elementSignature, &doubleArrValue);
90+ value = ConvertToJsValue (isolate, objectManager, env, elementSignature, &doubleArrValue);
9191 }
9292 else
9393 {
9494 jobject result = env.GetObjectArrayElement (static_cast <jobjectArray>(arr), index);
95- value = ConvertToJsValue (objectManager, env, elementSignature, &result);
95+ value = ConvertToJsValue (isolate, objectManager, env, elementSignature, &result);
9696 env.DeleteLocalRef (result);
9797 }
9898
@@ -199,12 +199,10 @@ void ArrayElementAccessor::SetArrayElement(Isolate *isolate, const Local<Object>
199199 }
200200}
201201
202- Local<Value> ArrayElementAccessor::ConvertToJsValue (ObjectManager *objectManager, JEnv& env, const string& elementSignature, const void *value)
202+ Local<Value> ArrayElementAccessor::ConvertToJsValue (Isolate *isolate, ObjectManager *objectManager, JEnv& env, const string& elementSignature, const void *value)
203203{
204204 Local<Value> jsValue;
205205
206- auto isolate = Isolate::GetCurrent ();
207-
208206 if (elementSignature == " Z" )
209207 {
210208 jsValue = Boolean::New (isolate, *(jboolean*) value);
@@ -227,7 +225,7 @@ Local<Value> ArrayElementAccessor::ConvertToJsValue(ObjectManager *objectManager
227225 }
228226 else if (elementSignature == " J" )
229227 {
230- jsValue = ArgConverter::ConvertFromJavaLong (*(jlong*) value);
228+ jsValue = ArgConverter::ConvertFromJavaLong (isolate, *(jlong*) value);
231229 }
232230 else if (elementSignature == " F" )
233231 {
0 commit comments