From 2578da9f2bf866089d865c937e9ead339620d8fe Mon Sep 17 00:00:00 2001 From: wangkun Date: Fri, 22 Oct 2021 11:11:13 +0800 Subject: [PATCH] fixed the js engine has several envs bugs Signed-off-by: wangkun --- .../jskitsimpl/distributeddata/include/kv_manager.h | 1 - .../jskitsimpl/distributeddata/include/single_kv_store.h | 1 - frameworks/jskitsimpl/distributeddata/src/kv_manager.cpp | 8 ++++---- .../jskitsimpl/distributeddata/src/single_kv_store.cpp | 8 ++++---- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/frameworks/jskitsimpl/distributeddata/include/kv_manager.h b/frameworks/jskitsimpl/distributeddata/include/kv_manager.h index be8751a1b..90bd20c57 100644 --- a/frameworks/jskitsimpl/distributeddata/include/kv_manager.h +++ b/frameworks/jskitsimpl/distributeddata/include/kv_manager.h @@ -31,7 +31,6 @@ private: DistributedKv::DistributedKvDataManager kvDataManager_ {}; std::string bundleName_ {}; - static napi_ref ctor_; }; } #endif // OHOS_KV_MANAGER_H diff --git a/frameworks/jskitsimpl/distributeddata/include/single_kv_store.h b/frameworks/jskitsimpl/distributeddata/include/single_kv_store.h index dd9942fdf..9b3123791 100644 --- a/frameworks/jskitsimpl/distributeddata/include/single_kv_store.h +++ b/frameworks/jskitsimpl/distributeddata/include/single_kv_store.h @@ -73,7 +73,6 @@ private: static napi_status OnDataChange(napi_env env, size_t argc, napi_value *argv, napi_value self, napi_value *result); static napi_status OnSyncComplete(napi_env env, size_t argc, napi_value *argv, napi_value self, napi_value *result); static std::map eventHandlers_; - static napi_ref ctor_; std::unique_ptr kvStore_ = nullptr; std::shared_ptr syncObserver_ = nullptr; diff --git a/frameworks/jskitsimpl/distributeddata/src/kv_manager.cpp b/frameworks/jskitsimpl/distributeddata/src/kv_manager.cpp index a0e35405f..949a68adc 100644 --- a/frameworks/jskitsimpl/distributeddata/src/kv_manager.cpp +++ b/frameworks/jskitsimpl/distributeddata/src/kv_manager.cpp @@ -24,7 +24,7 @@ using namespace OHOS::DistributedKv; namespace OHOS::DistributedData { -napi_ref KVManager::ctor_ = nullptr; +static __thread napi_ref g_ctor = nullptr; napi_value KVManager::CreateKVManager(napi_env env, napi_callback_info info) { ZLOGD("get kv manager!"); @@ -116,8 +116,8 @@ napi_value KVManager::GetKVStore(napi_env env, napi_callback_info info) napi_value KVManager::GetCtor(napi_env env) { napi_value cons; - if (ctor_ != nullptr) { - NAPI_CALL(env, napi_get_reference_value(env, ctor_, &cons)); + if (g_ctor != nullptr) { + NAPI_CALL(env, napi_get_reference_value(env, g_ctor, &cons)); return cons; } @@ -126,7 +126,7 @@ napi_value KVManager::GetCtor(napi_env env) }; NAPI_CALL(env, napi_define_class(env, "KVManager", NAPI_AUTO_LENGTH, Initialize, nullptr, sizeof(clzDes) / sizeof(napi_property_descriptor), clzDes, &cons)); - NAPI_CALL(env, napi_create_reference(env, cons, 1, &ctor_)); + NAPI_CALL(env, napi_create_reference(env, cons, 1, &g_ctor)); return cons; } diff --git a/frameworks/jskitsimpl/distributeddata/src/single_kv_store.cpp b/frameworks/jskitsimpl/distributeddata/src/single_kv_store.cpp index c91d54153..196dc4d65 100644 --- a/frameworks/jskitsimpl/distributeddata/src/single_kv_store.cpp +++ b/frameworks/jskitsimpl/distributeddata/src/single_kv_store.cpp @@ -25,7 +25,7 @@ using namespace OHOS::DistributedKv; namespace OHOS::DistributedData { -napi_ref SingleKVStore::ctor_ = nullptr; +static __thread napi_ref g_ctor = nullptr; std::map SingleKVStore::eventHandlers_ = { {"dataChange", SingleKVStore::OnDataChange}, {"syncComplete", SingleKVStore::OnSyncComplete}, @@ -51,9 +51,9 @@ SingleKVStore::~SingleKVStore() napi_value SingleKVStore::GetCtor(napi_env env) { - if (ctor_ != nullptr) { + if (g_ctor != nullptr) { napi_value cons = nullptr; - NAPI_CALL(env, napi_get_reference_value(env, ctor_, &cons)); + NAPI_CALL(env, napi_get_reference_value(env, g_ctor, &cons)); return cons; } @@ -67,7 +67,7 @@ napi_value SingleKVStore::GetCtor(napi_env env) napi_value cons; NAPI_CALL(env, napi_define_class(env, "SingleKVStore", NAPI_AUTO_LENGTH, Initialize, nullptr, sizeof(clzDes) / sizeof(napi_property_descriptor), clzDes, &cons)); - NAPI_CALL(env, napi_create_reference(env, cons, 1, &ctor_)); + NAPI_CALL(env, napi_create_reference(env, cons, 1, &g_ctor)); return cons; } -- Gitee