@@ -970,22 +970,7 @@ napi_value interop_alloc(napi_env env, napi_callback_info info) {
970970 napi_get_value_int64 (env, arg, &size);
971971
972972 void * data = malloc (size);
973-
974- napi_value PointerClass = get_ref_value (env, ObjCBridgeState::InstanceData (env)->pointerClass );
975- napi_value result;
976- napi_new_instance (env, PointerClass, 0 , nullptr , &result);
977-
978- Pointer* ptr = nullptr ;
979- napi_unwrap (env, result, (void **)&ptr);
980-
981- if (ptr == nullptr ) {
982- napi_throw_error (env, nullptr , " Invalid pointer" );
983- return nullptr ;
984- }
985-
986- ptr->data = data;
987-
988- return result;
973+ return Pointer::create (env, data);
989974}
990975
991976napi_value interop_handleof (napi_env env, napi_callback_info info) {
@@ -1190,20 +1175,15 @@ napi_value interop_bufferFromData(napi_env env, napi_callback_info info) {
11901175
11911176 ObjCBridgeState* bridgeState = ObjCBridgeState::InstanceData (env);
11921177 napi_value jsPointer = get_ref_value (env, bridgeState->pointerClass );
1178+ napi_value argv[1 ];
1179+ napi_create_bigint_uint64 (env, static_cast <uint64_t >(reinterpret_cast <uintptr_t >(data)),
1180+ &argv[0 ]);
11931181 napi_value result;
1194- napi_status status = napi_new_instance (env, jsPointer, 0 , nullptr , &result);
1182+ napi_status status = napi_new_instance (env, jsPointer, 1 , argv , &result);
11951183
11961184 if (status != napi_ok) {
11971185 return nullptr ;
11981186 }
1199-
1200- Pointer* ptr = Pointer::unwrap (env, result);
1201- if (ptr == nullptr ) {
1202- return nullptr ;
1203- }
1204-
1205- ptr->data = data;
1206- cachePointer (env, data, result);
12071187 return result;
12081188}
12091189
0 commit comments