diff --git a/services/distributeddataservice/adapter/security/src/security.cpp b/services/distributeddataservice/adapter/security/src/security.cpp index 849c376475af00214ebd45c40c3165cf4007c297..05f95e918ef3f95b11f8c87ab38a0ec96c6eb9e7 100755 --- a/services/distributeddataservice/adapter/security/src/security.cpp +++ b/services/distributeddataservice/adapter/security/src/security.cpp @@ -29,8 +29,8 @@ namespace OHOS::DistributedKv { using namespace DistributedDB; std::atomic_bool Security::isInitialized_ = true; const char * const Security::LABEL_VALUES[S4 + 1] = {}; -const char * const Security::DATA_DE[] = {}; -const char * const Security::DATA_CE[] = {}; +const char * const Security::DATA_DE[] = { nullptr }; +const char * const Security::DATA_CE[] = { nullptr }; Security::Security(const std::string &appId, const std::string &userId, const std::string &dir) { @@ -180,16 +180,11 @@ const char *Security::Convert2Name(const SecurityOption &option, bool isCE) return nullptr; } - return LABEL_VALUES[option.securityLabel]; + return nullptr; } int Security::Convert2Security(const std::string &name) { - for (int i = 0; i <= S4; i++) { - if (name == LABEL_VALUES[i]) { - return i; - } - } return NOT_SET; } diff --git a/services/distributeddataservice/app/src/kvstore_meta_manager.cpp b/services/distributeddataservice/app/src/kvstore_meta_manager.cpp index 9ffd34af412843ca91e104b52790dfe9a701e9b6..f23caee5782d3a1dc159d12e271c102140902885 100755 --- a/services/distributeddataservice/app/src/kvstore_meta_manager.cpp +++ b/services/distributeddataservice/app/src/kvstore_meta_manager.cpp @@ -150,6 +150,11 @@ void KvStoreMetaManager::InitMetaParameter() const KvStoreMetaManager::NbDelegate &KvStoreMetaManager::GetMetaKvStore() { + if (metaDelegate_ != nullptr) { + return metaDelegate_; + } + + std::lock_guard lock(mutex_); if (metaDelegate_ == nullptr) { metaDelegate_ = CreateMetaKvStore(); } @@ -178,6 +183,7 @@ KvStoreMetaManager::NbDelegate KvStoreMetaManager::CreateMetaKvStore() return nullptr; } auto release = [this](DistributedDB::KvStoreNbDelegate *delegate) { + ZLOGI("release meta data kv store"); if (delegate == nullptr) { return; } diff --git a/services/distributeddataservice/app/src/kvstore_meta_manager.h b/services/distributeddataservice/app/src/kvstore_meta_manager.h index f4542a36c417fc5ae3d0d9ff16d0e89b44ce5bbe..5457b814389e7c6aca2b784e80fe14c880ec2eef 100755 --- a/services/distributeddataservice/app/src/kvstore_meta_manager.h +++ b/services/distributeddataservice/app/src/kvstore_meta_manager.h @@ -309,6 +309,7 @@ private: static std::mutex cvMutex_; static MetaDeviceChangeListenerImpl listener_; KvStoreMetaObserver metaObserver_; + std::recursive_mutex mutex_; }; } // namespace DistributedKv } // namespace OHOS