Local<Value> ArgConverter::jstringToV8String(jstring value) { if (value == nullptr) { return Null(Isolate::GetCurrent()); } JEnv env; auto chars = env.GetStringChars(value, NULL); auto length = env.GetStringLength(value); auto v8String = ConvertToV8String(chars, length); env.ReleaseStringChars(value, chars); return v8String; }
bool ArgConverter::ReadJStringInBuffer(jstring value, jsize& utfLength) { if (value == nullptr) { return false; } JEnv env; utfLength = env.GetStringUTFLength(value); if(utfLength > BUFFER_SIZE) { return false; } jsize strLength = env.GetStringLength(value); // use existing buffer to prevent extensive memory allocation env.GetStringUTFRegion(value, (jsize)0, strLength, charBuffer); return true; }