MCPcopy Create free account
hub / github.com/Snapchat/Valdi / newJavaStringUTF8

Function newJavaStringUTF8

valdi_core/src/valdi_core/jni/JavaUtils.cpp:292–309  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

290}
291
292djinni::LocalRef<jstring> newJavaStringUTF8(const std::string_view& str) {
293 size_t length;
294 auto modifiedLength = facebook::jni::detail::modifiedLength(reinterpret_cast<const uint8_t*>(str.data()), &length);
295
296 if (modifiedLength == str.size()) {
297 return JavaEnv::accessEnvRetRef([&](JNIEnv& env) { return env.NewStringUTF(str.data()); });
298 } else {
299 Valdi::SmallVector<uint8_t, 128> buffer;
300 // Need additional byte for \0 at the end
301 buffer.resize(modifiedLength + 1);
302
303 facebook::jni::detail::utf8ToModifiedUTF8(
304 reinterpret_cast<const uint8_t*>(str.data()), str.size(), buffer.data(), buffer.size());
305
306 return JavaEnv::accessEnvRetRef(
307 [&](JNIEnv& env) { return env.NewStringUTF(reinterpret_cast<const char*>(buffer.data())); });
308 }
309}
310
311djinni::LocalRef<jstring> newJavaStringUTF16(const std::u16string_view& str) {
312 return JavaEnv::accessEnvRetRef(

Callers 4

toJavaObjectFunction · 0.85
newJavaStringFunction · 0.85
getModuleEntryMethod · 0.85
newStringUTF8Method · 0.85

Calls 5

modifiedLengthFunction · 0.85
utf8ToModifiedUTF8Function · 0.85
dataMethod · 0.45
sizeMethod · 0.45
resizeMethod · 0.45

Tested by

no test coverage detected