| 290 | } |
| 291 | |
| 292 | djinni::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 | |
| 311 | djinni::LocalRef<jstring> newJavaStringUTF16(const std::u16string_view& str) { |
| 312 | return JavaEnv::accessEnvRetRef( |
no test coverage detected