MCPcopy Create free account
hub / github.com/Tencent/libpag / SafeConvertToJString

Function SafeConvertToJString

src/platform/android/JStringUtil.cpp:27–42  ·  view source on GitHub ↗

* There is a known bug in env->NewStringUTF which will lead to crash in some devices. * So we use this method instead. */

Source from the content-addressed store, hash-verified

25 * So we use this method instead.
26 */
27jstring SafeConvertToJString(JNIEnv* env, const std::string& text) {
28 static Global<jclass> StringClass = env->FindClass("java/lang/String");
29 static jmethodID StringConstructID =
30 env->GetMethodID(StringClass.get(), "<init>", "([BLjava/lang/String;)V");
31 auto array = env->NewByteArray(static_cast<jsize>(text.size()));
32 if (array == nullptr) {
33 return nullptr;
34 }
35 env->SetByteArrayRegion(array, 0, static_cast<jsize>(text.size()),
36 reinterpret_cast<const jbyte*>(text.data()));
37 auto stringUTF = env->NewStringUTF("UTF-8");
38 auto result = (jstring)env->NewObject(StringClass.get(), StringConstructID, array, stringUTF);
39 env->DeleteLocalRef(array);
40 env->DeleteLocalRef(stringUTF);
41 return result;
42}
43
44std::string SafeConvertToStdString(JNIEnv* env, jstring jText) {
45 if (jText == nullptr) {

Callers 8

MakePAGFontObjectFunction · 0.85
ToPAGMarkerObjectFunction · 0.85
TraceMethod · 0.85
ToPAGTextObjectFunction · 0.85

Calls 3

sizeMethod · 0.80
getMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected