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

Function MakeByteBufferObject

src/platform/android/JNIHelper.cpp:81–98  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

79}
80
81jobject MakeByteBufferObject(JNIEnv* env, const void* bytes, size_t length) {
82 static Global<jclass> ByteBufferClass = env->FindClass("java/nio/ByteBuffer");
83 if (ByteBufferClass.get() == nullptr) {
84 env->ExceptionClear();
85 LOGE("Could not run JNIHelper.MakeByteBufferObject(), ByteBufferClass is not found!");
86 return nullptr;
87 }
88 static jmethodID ByteBuffer_wrap =
89 env->GetStaticMethodID(ByteBufferClass.get(), "wrap", "([B)Ljava/nio/ByteBuffer;");
90 auto byteArray = env->NewByteArray(static_cast<jint>(length));
91 if (byteArray == nullptr) {
92 return nullptr;
93 }
94 env->SetByteArrayRegion(byteArray, 0, static_cast<jint>(length), (jbyte*)bytes);
95 auto result = env->CallStaticObjectMethod(ByteBufferClass.get(), ByteBuffer_wrap, byteArray);
96 env->DeleteLocalRef(byteArray);
97 return result;
98}
99
100pag::Color ToColor(JNIEnv*, jint value) {
101 auto color = static_cast<uint32_t>(value);

Callers 1

TraceMethod · 0.85

Calls 1

getMethod · 0.45

Tested by

no test coverage detected