From 01b94736a0a13a48ed7acad332fe68dd4661bf7a Mon Sep 17 00:00:00 2001 From: liduo Date: Sat, 20 Jul 2024 20:52:33 +0800 Subject: [PATCH] fix id overflow Signed-off-by: liduo --- include/config_parser.h | 8 ++++---- include/resource_append.h | 2 +- include/resource_table.h | 6 +++--- include/resource_util.h | 2 +- src/config_parser.cpp | 8 ++++---- src/reference_parser.cpp | 2 +- src/resource_util.cpp | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/include/config_parser.h b/include/config_parser.h index 691fe75..979d1da 100644 --- a/include/config_parser.h +++ b/include/config_parser.h @@ -40,10 +40,10 @@ public: uint32_t Init(); const std::string &GetPackageName() const; const std::string &GetModuleName() const; - int32_t GetAbilityIconId() const; - int32_t GetAbilityLabelId() const; - bool SetAppIcon(std::string &icon, int32_t id); - bool SetAppLabel(std::string &label, int32_t id); + int64_t GetAbilityIconId() const; + int64_t GetAbilityLabelId() const; + bool SetAppIcon(std::string &icon, int64_t id); + bool SetAppLabel(std::string &label, int64_t id); ModuleType GetModuleType() const; uint32_t ParseRefence(); uint32_t Save(const std::string &filePath) const; diff --git a/include/resource_append.h b/include/resource_append.h index 662c44d..2261e5f 100644 --- a/include/resource_append.h +++ b/include/resource_append.h @@ -60,7 +60,7 @@ private: std::string ParseString(const char buffer[], int32_t length, int32_t &offset) const; int32_t ParseInt32(const char buffer[], int32_t length, int32_t &offset) const; bool ParseRef(); - bool CheckModuleResourceItem(const std::shared_ptr &resourceItem, int64_t id); + bool CheckModuleResourceItem(const std::shared_ptr &resourceItem, int64_t id); bool IsBaseIdDefined(const FileInfo &fileInfo); #ifdef __WIN32 bool LoadResourceItemWin(const std::string &filePath); diff --git a/include/resource_table.h b/include/resource_table.h index fe598ac..3aa5520 100644 --- a/include/resource_table.h +++ b/include/resource_table.h @@ -34,7 +34,7 @@ public: uint32_t LoadResTable(const std::string path, std::map> &resInfos); private: struct TableData { - int32_t id; + uint32_t id; ResourceItem resourceItem; }; @@ -54,13 +54,13 @@ private: struct IdSet { int8_t idTag[TAG_LEN] = {'I', 'D', 'S', 'S'}; uint32_t idCount; - std::map data; // pair id and offset + std::map data; // pair id and offset }; struct RecordItem { uint32_t size; int32_t resType; - int32_t id; + uint32_t id; }; uint32_t SaveToResouorceIndex(const std::map> &configs) const; uint32_t CreateIdDefined(const std::map> &allResource) const; diff --git a/include/resource_util.h b/include/resource_util.h index d2893ba..9e2d180 100644 --- a/include/resource_util.h +++ b/include/resource_util.h @@ -172,7 +172,7 @@ public: * @param int32_t Decimal * @return Hexadecimal string */ - static std::string DecToHexStr(const int32_t id); + static std::string DecToHexStr(const uint32_t id); /** * @brief Check hexadecimal string diff --git a/src/config_parser.cpp b/src/config_parser.cpp index 8fce877..2e96cd4 100644 --- a/src/config_parser.cpp +++ b/src/config_parser.cpp @@ -98,12 +98,12 @@ const string &ConfigParser::GetModuleName() const return moduleName_; } -int32_t ConfigParser::GetAbilityIconId() const +int64_t ConfigParser::GetAbilityIconId() const { return abilityIconId_; } -int32_t ConfigParser::GetAbilityLabelId() const +int64_t ConfigParser::GetAbilityLabelId() const { return abilityLabelId_; } @@ -129,7 +129,7 @@ uint32_t ConfigParser::Save(const string &filePath) const return RESTOOL_ERROR; } -bool ConfigParser::SetAppIcon(string &icon, int32_t id) +bool ConfigParser::SetAppIcon(string &icon, int64_t id) { cJSON *appNode = cJSON_GetObjectItem(root_, "app"); if (!appNode || !cJSON_IsObject(appNode)) { @@ -141,7 +141,7 @@ bool ConfigParser::SetAppIcon(string &icon, int32_t id) return true; } -bool ConfigParser::SetAppLabel(string &label, int32_t id) +bool ConfigParser::SetAppLabel(string &label, int64_t id) { cJSON *appNode = cJSON_GetObjectItem(root_, "app"); if (!appNode || !cJSON_IsObject(appNode)) { diff --git a/src/reference_parser.cpp b/src/reference_parser.cpp index 94f1494..bb050bb 100644 --- a/src/reference_parser.cpp +++ b/src/reference_parser.cpp @@ -273,7 +273,7 @@ bool ReferenceParser::ParseRefImpl(string &key, const map &refs smatch result; if (regex_search(key, result, regex(ref.first))) { string name = key.substr(result[0].str().length()); - int32_t id = idWorker_.GetId(ref.second, name); + int64_t id = idWorker_.GetId(ref.second, name); if (isSystem) { id = idWorker_.GetSystemId(ref.second, name); } diff --git a/src/resource_util.cpp b/src/resource_util.cpp index e4e4d19..4b958aa 100644 --- a/src/resource_util.cpp +++ b/src/resource_util.cpp @@ -355,7 +355,7 @@ string ResourceUtil::PaserKeyParam(const vector &keyParams) return result; } -string ResourceUtil::DecToHexStr(const int32_t i) +string ResourceUtil::DecToHexStr(const uint32_t i) { stringstream ot; string result;