diff --git a/native_engine/native_api.cpp b/native_engine/native_api.cpp index d3341922be4e000f7521dea7a3097217f11b616d..84533c8ab783ee3c2f595f02805f0d84ff57580c 100644 --- a/native_engine/native_api.cpp +++ b/native_engine/native_api.cpp @@ -2802,7 +2802,8 @@ NAPI_EXTERN napi_status napi_create_buffer(napi_env env, size_t size, void** dat } SWITCH_CONTEXT(env); auto vm = reinterpret_cast(env)->GetEcmaVm(); - Local obj = BufferRef::New(vm, size); + Local context = engine->GetContext(); + Local obj = BufferRef::New(vm, context, size); *value = reinterpret_cast(obj->GetBuffer(vm)); CHECK_ARG(env, *data); @@ -2840,7 +2841,8 @@ NAPI_EXTERN napi_status napi_create_buffer_copy(napi_env env, } SWITCH_CONTEXT(env); auto vm = reinterpret_cast(env)->GetEcmaVm(); - Local obj = BufferRef::New(vm, length); + Local context = engine->GetContext(); + Local obj = BufferRef::New(vm, context, length); if (obj->IsUndefined()) { HILOG_INFO("engine create buffer_copy failed!"); } @@ -2884,13 +2886,14 @@ NAPI_EXTERN napi_status napi_create_external_buffer(napi_env env, SWITCH_CONTEXT(env); auto vm = engine->GetEcmaVm(); Local object; + Local context = engine->GetContext(); if (engine->IsMainEnvContext()) { - object = panda::BufferRef::New(vm, data, length, callback, finalize_hint); + object = panda::BufferRef::New(vm, context, data, length, callback, finalize_hint); void* ptr = object->GetBuffer(vm); CHECK_ARG(env, ptr); *result = JsValueFromLocalValue(object); } else { - object = panda::BufferRef::New(vm, data, length, nullptr, nullptr); + object = panda::BufferRef::New(vm, context, data, length, nullptr, nullptr); void* ptr = object->GetBuffer(vm); CHECK_ARG(env, ptr); *result = JsValueFromLocalValue(object);