Skip to content

Commit 81806b3

Browse files
committed
fix: remove free of non-owned jni buffer
1 parent d3c52cb commit 81806b3

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

test-app/runtime/src/main/cpp/ArrayBufferHelper.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,7 @@ void ArrayBufferHelper::CreateFromCallbackImpl(const FunctionCallbackInfo<Value>
9292
std::shared_ptr<v8::BackingStore> store = ArrayBuffer::NewBackingStore(
9393
data,
9494
size,
95-
[](void* data, size_t length, void* deleter_data) {
96-
free(data);
97-
},
95+
[](void* data, size_t length, void* deleter_data) {},
9896
data);
9997

10098
arrayBuffer = ArrayBuffer::New(isolate, store);
@@ -116,14 +114,14 @@ void ArrayBufferHelper::CreateFromCallbackImpl(const FunctionCallbackInfo<Value>
116114

117115
auto byteArrayElements = env.GetByteArrayElements(byteArray, 0);
118116

119-
void* data[bufferRemainingSize];
117+
jbyte* data = new jbyte[bufferRemainingSize];
120118
memcpy(data, byteArrayElements, bufferRemainingSize);
121119

122120
std::shared_ptr<v8::BackingStore> store = ArrayBuffer::NewBackingStore(
123-
byteArrayElements,
121+
data,
124122
bufferRemainingSize,
125123
[](void *data, size_t length, void *deleter_data) {
126-
free(data);
124+
delete[] ((jbyte*)data);
127125
},
128126
nullptr);
129127

0 commit comments

Comments
 (0)