mirror of
https://github.com/openharmony/developtools_global_resource_tool.git
synced 2026-06-29 20:08:35 -04:00
master
优化CompressionParser单例获取
Created-by: leeduo
Commit-by: liduo
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
修复CompressionParser单例获取的double free问题:
**问题原因:**
GetCompressionParser(const string &filePath)使用call_once保证线程安全,但GetCompressionParser()无保护,可能导致:
1. 多线程场景下重复创建单例对象
2. 覆盖已创建的对象导致double free
**修复方案:**
无参版本GetCompressionParser()调用带参版本,由call_once统一保证单例只创建一次。
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/developtools_global_resource_tool!293
OpenHarmony resource compile tool
Description
resource tool is used in computer.In OpenHarmony SDK toolchain.Provide to IDE.Support Windows, Linux, MacOS platform.
Directory Structure
/developtools
|----global_resource_tool
| |----include #Header file
| |----src #source code file
| |----test #Test case
| |----build #Depending on the third-party library compilation script
| |----BUILD.gn #Compile script
| |----CMakeLists.txt #CMake file
| |----win32.cmake #Windows cross compilation script
Instructions
Test
In PC, run python test.py ./restool ./out
Help
resource tool usually integrate to IDE, OpenHarmony compile system.
resource tool command e.g:
-v version
-i input resource path
-o output resource path
-r resource ID header file path
-p package name
-f if output path exists,force override it
-m module name, can add more, split by ','(like entry1,entry2,...)
-j config.json path
-e start id mask, e.g 0x01000000, in [0x01000000, 0x06FFFFFF),[0x08000000, 0x41FFFFFF)
entry Directory Structure
| |----resource
| |----config.json or module.json
./restool -i entry1 -i entry2 -j xxx/module.json -p ohos.demo.xxx -o out -r out/ResourceTable.h
Related to the storehouse
global_resource_tool
Description
Languages
C++
99.4%
CMake
0.4%
Python
0.2%