diff --git a/contactsCJ/include/contacts_utils.h b/contactsCJ/include/contacts_utils.h index d311014b3a574bb3a7bd6c4c0ad4646ae5e8b080..aebb5ff962014bf78612cbc29e11092861e02e5a 100644 --- a/contactsCJ/include/contacts_utils.h +++ b/contactsCJ/include/contacts_utils.h @@ -137,7 +137,7 @@ struct KeyWithValueType { int64_t integer = 0; double dou = 0.0; std::string string; - uint8_t tag; + uint8_t tag = static_cast(DataShare::DataType::TYPE_NULL); KeyWithValueType(std::string k, int64_t v) { @@ -166,6 +166,7 @@ struct KeyWithValueType { if (*errCode != SUCCESS) { return *errCode; } + dst[dstIdx].value[idx].tag = this->tag; if (this->tag == static_cast(DataShare::DataType::TYPE_INTEGER)) { dst[dstIdx].value[idx].integer = this->integer; } else if (this->tag == static_cast(DataShare::DataType::TYPE_FLOAT)) { diff --git a/contactsCJ/src/contacts_utils.cpp b/contactsCJ/src/contacts_utils.cpp index cd3653f8c3a0ab08802249f9137d0d5cdb9eeb53..ef86940f86c2b474e79fc6d8caabbe76920a249b 100644 --- a/contactsCJ/src/contacts_utils.cpp +++ b/contactsCJ/src/contacts_utils.cpp @@ -42,6 +42,9 @@ bool allocBucket(ValuesBucket* b, size_t total, int32_t *errCode) *errCode = ERROR; b->freeContent(); return false; + } else { + b->value->tag = static_cast(DataType::TYPE_NULL); + b->value->string = nullptr; } } return true;