From 8d135a2ae0b9a3e3c1f76870ee5b72d368bcdc4e Mon Sep 17 00:00:00 2001 From: wbq_sky Date: Mon, 26 Sep 2022 14:46:12 +0800 Subject: [PATCH] fix the review issues Signed-off-by: wbq_sky --- .../interfaces/src/intercepted_data_impl.cpp | 3 + .../src/generic_single_ver_kv_entry.cpp | 67 +++++++------------ .../storage/src/generic_single_ver_kv_entry.h | 4 +- 3 files changed, 30 insertions(+), 44 deletions(-) diff --git a/frameworks/libs/distributeddb/interfaces/src/intercepted_data_impl.cpp b/frameworks/libs/distributeddb/interfaces/src/intercepted_data_impl.cpp index 3bfb06d1571..97042fd5bf9 100644 --- a/frameworks/libs/distributeddb/interfaces/src/intercepted_data_impl.cpp +++ b/frameworks/libs/distributeddb/interfaces/src/intercepted_data_impl.cpp @@ -178,6 +178,9 @@ void InterceptedDataImpl::GetKvEntries() { for (size_t i = 0; i < dataItems_.size(); ++i) { const auto &kvEntry = dataItems_[i]; + if (kvEntry == nullptr) { + continue; + } if ((kvEntry->GetFlag() & DataItem::DELETE_FLAG) == 0) { // For deleted data, do not modify. kvEntries_.push_back({ kvEntry->GetKey(), kvEntry->GetValue() }); indexes_.push_back(i); diff --git a/frameworks/libs/distributeddb/storage/src/generic_single_ver_kv_entry.cpp b/frameworks/libs/distributeddb/storage/src/generic_single_ver_kv_entry.cpp index f943964775a..a8be5246de7 100644 --- a/frameworks/libs/distributeddb/storage/src/generic_single_ver_kv_entry.cpp +++ b/frameworks/libs/distributeddb/storage/src/generic_single_ver_kv_entry.cpp @@ -118,11 +118,7 @@ int GenericSingleVerKvEntry::SerializeData(Parcel &parcel, uint32_t targetVersio if (errCode != E_OK) { return errCode; } - errCode = AdaptToVersion(OperType::SERIALIZE, targetVersion, parcel, len); - if (errCode != E_OK) { - return errCode; - } - return errCode; + return AdaptToVersion(OperType::SERIALIZE, targetVersion, parcel, len); } int GenericSingleVerKvEntry::SerializeDatas(const std::vector &kvEntries, Parcel &parcel, @@ -194,30 +190,29 @@ int GenericSingleVerKvEntry::DeSerializeData(Parcel &parcel) int GenericSingleVerKvEntry::DeSerializeDatas(std::vector &kvEntries, Parcel &parcel) { - uint64_t len = 0; uint32_t size = 0; - len += parcel.ReadUInt32(size); + uint64_t len = parcel.ReadUInt32(size); if (size > DBConstant::MAX_NORMAL_PACK_ITEM_SIZE) { len = 0; - goto END; - } - parcel.EightByteAlign(); - len = BYTE_8_ALIGN(len); - for (uint32_t i = 0; i < size; i++) { - auto kvEntry = new (std::nothrow) GenericSingleVerKvEntry(); - if (kvEntry == nullptr) { - LOGE("Create kvEntry failed."); - len = 0; - goto END; - } - len += kvEntry->DeSerializeData(parcel); - kvEntries.push_back(kvEntry); - if (len > INT32_MAX || parcel.IsError()) { - len = 0; - goto END; + } else { + parcel.EightByteAlign(); + len = BYTE_8_ALIGN(len); + for (uint32_t i = 0; i < size; i++) { + auto kvEntry = new (std::nothrow) GenericSingleVerKvEntry(); + if (kvEntry == nullptr) { + LOGE("Create kvEntry failed."); + len = 0; + break; + } + len += kvEntry->DeSerializeData(parcel); + kvEntries.push_back(kvEntry); + if (len > INT32_MAX || parcel.IsError()) { + len = 0; + break; + } } } -END: + if (len == 0) { for (auto &kvEntry : kvEntries) { delete kvEntry; @@ -228,7 +223,7 @@ END: } int GenericSingleVerKvEntry::AdaptToVersion(OperType operType, uint32_t targetVersion, Parcel &parcel, - uint64_t &datalen) + uint64_t &dataLen) { if (targetVersion < SOFTWARE_VERSION_EARLIEST || targetVersion > SOFTWARE_VERSION_CURRENT) { return -E_VERSION_NOT_SUPPORT; @@ -239,7 +234,7 @@ int GenericSingleVerKvEntry::AdaptToVersion(OperType operType, uint32_t targetVe errCode = SerializeDataByVersion(targetVersion, parcel); break; case OperType::DESERIALIZE: - errCode = DeSerializeByVersion(targetVersion, parcel, datalen); + errCode = DeSerializeByVersion(targetVersion, parcel, dataLen); break; default: LOGE("Unknown upgrade serialize oper!"); @@ -264,22 +259,10 @@ int GenericSingleVerKvEntry::AdaptToVersion(OperType operType, uint32_t targetVe int GenericSingleVerKvEntry::SerializeDataByFirstVersion(Parcel &parcel) const { - int errCode = parcel.WriteVectorChar(dataItem_.key); - if (errCode != E_OK) { - return errCode; - } - errCode = parcel.WriteVectorChar(dataItem_.value); - if (errCode != E_OK) { - return errCode; - } - errCode = parcel.WriteUInt64(dataItem_.timestamp); - if (errCode != E_OK) { - return errCode; - } - errCode = parcel.WriteUInt64(dataItem_.flag); - if (errCode != E_OK) { - return errCode; - } + (void)parcel.WriteVectorChar(dataItem_.key); + (void)parcel.WriteVectorChar(dataItem_.value); + (void)parcel.WriteUInt64(dataItem_.timestamp); + (void)parcel.WriteUInt64(dataItem_.flag); return parcel.WriteString(dataItem_.origDev); } diff --git a/frameworks/libs/distributeddb/storage/src/generic_single_ver_kv_entry.h b/frameworks/libs/distributeddb/storage/src/generic_single_ver_kv_entry.h index 8fa82b0061a..8f6a430455c 100644 --- a/frameworks/libs/distributeddb/storage/src/generic_single_ver_kv_entry.h +++ b/frameworks/libs/distributeddb/storage/src/generic_single_ver_kv_entry.h @@ -25,8 +25,8 @@ namespace DistributedDB { struct CompressInfo { - CompressAlgorithm compressAlgo; - uint32_t targetVersion; + CompressAlgorithm compressAlgo = CompressAlgorithm::ZLIB; + uint32_t targetVersion = 0; }; class GenericSingleVerKvEntry : public SingleVerKvEntry { -- Gitee