diff --git a/webrtc-jni/src/main/cpp/src/api/DataBufferFactory.cpp b/webrtc-jni/src/main/cpp/src/api/DataBufferFactory.cpp index 619b3767..2e29c4ae 100644 --- a/webrtc-jni/src/main/cpp/src/api/DataBufferFactory.cpp +++ b/webrtc-jni/src/main/cpp/src/api/DataBufferFactory.cpp @@ -31,6 +31,9 @@ namespace jni const jboolean isBinary = static_cast(dataBuffer->binary); jobject object = env->NewObject(javaClass, javaCtor, directBuffer, isBinary); + + env->DeleteLocalRef(directBuffer); + ExceptionCheck(env); return JavaLocalRef(env, object); diff --git a/webrtc-jni/src/main/cpp/src/api/RTCDataChannelObserver.cpp b/webrtc-jni/src/main/cpp/src/api/RTCDataChannelObserver.cpp index fef868e2..5c0258ea 100644 --- a/webrtc-jni/src/main/cpp/src/api/RTCDataChannelObserver.cpp +++ b/webrtc-jni/src/main/cpp/src/api/RTCDataChannelObserver.cpp @@ -43,7 +43,7 @@ namespace jni JavaLocalRef jBuffer = bufferFactory->create(env, &buffer); - env->CallVoidMethod(observer, javaClass->onMessage, jBuffer.release()); + env->CallVoidMethod(observer, javaClass->onMessage, jBuffer.get()); ExceptionCheck(env); }