@@ -253,37 +253,25 @@ bool JsArgConverter::ConvertArg(const Local<Value> &arg, int index) {
253253 size_t offset = 0 ;
254254 size_t length;
255255 uint8_t *data = nullptr ;
256- auto link_with_data = false ;
257256 if (jsObject->IsArrayBuffer ()) {
258257 auto array = jsObject.As <v8::ArrayBuffer>();
259258 store = array->GetBackingStore ();
260259 length = array->ByteLength ();
260+ data = static_cast <uint8_t *>(store->Data ());
261261 } else if (jsObject->IsArrayBufferView ()) {
262262 auto array = jsObject.As <v8::ArrayBufferView>();
263-
264- if (!array->HasBuffer ()) {
265-
266- length = array->ByteLength ();
267- void *data_ = malloc (length);
268- array->CopyContents (data_, length);
269- data = (uint8_t *) data_;
270- link_with_data = true ;
271- } else {
272- length = array->ByteLength ();
273- }
274263 offset = array->ByteOffset ();
264+ length = array->ByteLength ();
275265 store = array->Buffer ()->GetBackingStore ();
266+ data = static_cast <uint8_t *>(store->Data ()) + offset;
276267 bufferCastType = JsArgConverter::GetCastType (array);
277268 } else {
278269 auto array = jsObject.As <v8::TypedArray>();
279270 offset = array->ByteOffset ();
280271 store = array->Buffer ()->GetBackingStore ();
281272 length = array->ByteLength ();
282- bufferCastType = JsArgConverter::GetCastType (array);
283- }
284-
285- if (data == nullptr ) {
286273 data = static_cast <uint8_t *>(store->Data ()) + offset;
274+ bufferCastType = JsArgConverter::GetCastType (array);
287275 }
288276
289277 auto directBuffer = env.NewDirectByteBuffer (
@@ -342,11 +330,7 @@ bool JsArgConverter::ConvertArg(const Local<Value> &arg, int index) {
342330 int id = objectManager->GetOrCreateObjectId (buffer);
343331 auto clazz = env.GetObjectClass (buffer);
344332
345- if (link_with_data) {
346- objectManager->LinkWithExtraData (jsObject, id, clazz, data);
347- } else {
348- objectManager->Link (jsObject, id, clazz);
349- }
333+ objectManager->Link (jsObject, id, clazz);
350334
351335 obj = objectManager->GetJavaObjectByJsObject (jsObject);
352336 }
0 commit comments