@@ -83,51 +83,52 @@ void ArrayElementAccessor::SetArrayElement(Isolate* isolate, const Local<Object>
8383 HandleScope handleScope (isolate);
8484 auto runtime = Runtime::GetRuntime (isolate);
8585 auto objectManager = runtime->GetObjectManager ();
86+ auto context = isolate->GetCurrentContext ();
8687
8788 auto arr = objectManager->GetJavaObjectByJsObject (array);
8889
8990 const string elementSignature = arraySignature.substr (1 );
9091 jboolean isCopy = false ;
9192
9293 if (elementSignature == " Z" ) { // bool
93- jboolean boolElementValue = (jboolean) value->BooleanValue ();
94+ jboolean boolElementValue = (jboolean) value->BooleanValue (context). ToChecked ( );
9495 jbooleanArray boolArr = static_cast <jbooleanArray>(arr);
9596 env.SetBooleanArrayRegion (boolArr, index, 1 , &boolElementValue);
9697 } else if (elementSignature == " B" ) { // byte
97- jbyte byteElementValue = (jbyte) value->Int32Value ();
98+ jbyte byteElementValue = (jbyte) value->Int32Value (context). ToChecked ( );
9899 jbyteArray byteArr = static_cast <jbyteArray>(arr);
99100 env.SetByteArrayRegion (byteArr, index, 1 , &byteElementValue);
100101 } else if (elementSignature == " C" ) { // char
101- String::Utf8Value utf8 (value->ToString ());
102+ String::Utf8Value utf8 (isolate, value->ToString (isolate ));
102103 JniLocalRef s (env.NewString ((jchar*) *utf8, 1 ));
103104 const char * singleChar = env.GetStringUTFChars (s, &isCopy);
104105 jchar charElementValue = *singleChar;
105106 env.ReleaseStringUTFChars (s, singleChar);
106107 jcharArray charArr = static_cast <jcharArray>(arr);
107108 env.SetCharArrayRegion (charArr, index, 1 , &charElementValue);
108109 } else if (elementSignature == " S" ) { // short
109- jshort shortElementValue = (jshort) value->Int32Value ();
110+ jshort shortElementValue = (jshort) value->Int32Value (context). ToChecked ( );
110111 jshortArray shortArr = static_cast <jshortArray>(arr);
111112 env.SetShortArrayRegion (shortArr, index, 1 , &shortElementValue);
112113 } else if (elementSignature == " I" ) { // int
113- jint intElementValue = value->Int32Value ();
114+ jint intElementValue = value->Int32Value (context). ToChecked ( );
114115 jintArray intArr = static_cast <jintArray>(arr);
115116 env.SetIntArrayRegion (intArr, index, 1 , &intElementValue);
116117 } else if (elementSignature == " J" ) { // long
117118 jlong longElementValue;
118119 if (value->IsObject ()) {
119120 longElementValue = (jlong) ArgConverter::ConvertToJavaLong (isolate, value);
120121 } else {
121- longElementValue = (jlong) value->IntegerValue ();
122+ longElementValue = (jlong) value->IntegerValue (context). ToChecked ( );
122123 }
123124 jlongArray longArr = static_cast <jlongArray>(arr);
124125 env.SetLongArrayRegion (longArr, index, 1 , &longElementValue);
125126 } else if (elementSignature == " F" ) { // float
126- jfloat floatElementValue = (jfloat) value->NumberValue ();
127+ jfloat floatElementValue = (jfloat) value->NumberValue (context). ToChecked ( );
127128 jfloatArray floatArr = static_cast <jfloatArray>(arr);
128129 env.SetFloatArrayRegion (floatArr, index, 1 , &floatElementValue);
129130 } else if (elementSignature == " D" ) { // double
130- jdouble doubleElementValue = (jdouble) value->NumberValue ();
131+ jdouble doubleElementValue = (jdouble) value->NumberValue (context). ToChecked ( );
131132 jdoubleArray doubleArr = static_cast <jdoubleArray>(arr);
132133 env.SetDoubleArrayRegion (doubleArr, index, 1 , &doubleElementValue);
133134 } else { // string or object
0 commit comments