Fixed dconfig exit crash caused by static variable destruction order
1. Added null pointer check before accessing m_config in updateValue
method to prevent accessing destroyed objects
2. Added m_config.storeRelaxed(nullptr) in destructor to clear the
atomic pointer
3. Added early return checks in connect and updateValue methods when
config is null
4. Updated default value for p_rules to use proper unicode string
literal
The issue occurred because static dconfig objects were being destroyed
after the QCoreApplication instance, leading to attempts to access
already destroyed DConfig objects during cleanup. The fix ensures proper
null checking and pointer cleanup to prevent crashes during application
exit.
Log: Fixed application exit crash related to dconfig static variables
Influence:
1. Test application normal startup and shutdown
2. Verify dconfig functionality still works correctly
3. Test with multiple dconfig instances
4. Verify no crashes occur during application termination
5. Test configuration value changes and updates
fix: 修复dconfig静态变量释放导致的退出异常
修复了由静态变量销毁顺序引起的dconfig退出崩溃问题
1. 在updateValue方法中添加空指针检查,防止访问已销毁的对象
2. 在析构函数中添加m_config.storeRelaxed(nullptr)来清理原子指针
3. 在connect和updateValue方法中添加config为null时的提前返回检查
4. 更新p_rules的默认值为正确的unicode字符串字面量
问题出现在静态dconfig对象在QCoreApplication实例之后被销毁时,导致在清
理过程中尝试访问已销毁的DConfig对象。修复确保进行适当的空值检查和指针清
理,以防止应用程序退出时的崩溃。
Log: 修复了与dconfig静态变量相关的应用程序退出崩溃问题
Influence:
1. 测试应用程序正常启动和关闭
2. 验证dconfig功能仍然正常工作
3. 测试多个dconfig实例的情况
4. 验证应用程序终止时不会发生崩溃
5. 测试配置值更改和更新功能
PMS: BUG-324689
Changed QSet to QStringList for annotations collection to ensure
deterministic output order
Added removeDuplicates() call to maintain uniqueness while preserving
order
This fixes non-reproducible builds caused by QSet's unpredictable
iteration order
Log: Fixed DBUS code generation reproducibility issue
Influence:
1. Verify DBUS interface code generation produces identical output for
same inputs
2. Test with multiple interface definitions containing annotations
3. Check build reproducibility across different systems
fix: 修复DBUS代码生成不可重复的问题
将注解集合从QSet改为QStringList以确保输出顺序确定性
添加removeDuplicates()调用在保持顺序的同时确保唯一性
修复了由于QSet迭代顺序不可预测导致的构建不可重复问题
Log: 修复了DBUS代码生成不可重复的问题
Influence:
1. 验证相同输入下DBUS接口代码生成是否产生相同输出
2. 测试包含多个注解的接口定义
3. 检查不同系统间的构建可重复性
1. Fixed incorrect bitwise AND operation in property status tracking
2. Changed `fetchAndAndOrdered(1 << index)` to `fetchAndAndOrdered(~(1
<< index))`
3. This ensures proper bit clearing when unsetting property flags
4. The change was made in both the generated header and the generator
tool
5. Without this fix, status tracking would incorrectly set bits instead
of clearing them
fix: 修正 dconfig 状态跟踪中的位操作
1. 修复了属性状态跟踪中错误的位与操作
2. 将 `fetchAndAndOrdered(1 << index)` 改为 `fetchAndAndOrdered(~(1
<< index))`
3. 确保在取消设置属性标志时能正确清除位
4. 修改同时应用于生成的头部文件和生成器工具
5. 若不修复此问题,状态跟踪会错误地设置位而非清除它们
1. Added QPointer include for tracking parent object lifecycle
2. Changed parent initialization to nullptr in constructor for safety
3. Implemented parent object tracking using QPointer to prevent dangling
pointers
4. Added logic to handle parent object deletion during async operation
5. Added proper parent reassignment if parent still exists after
operation
These changes prevent potential crashes when parent objects are deleted
during asynchronous configuration operations, particularly important in
multi-threaded scenarios where parent objects might be destroyed while
operations are pending.
fix: 添加 QPointer 检查确保父对象安全
1. 添加 QPointer 头文件用于跟踪父对象生命周期
2. 构造函数中将父对象初始化为 nullptr 提高安全性
3. 使用 QPointer 实现父对象跟踪,防止悬垂指针
4. 添加处理异步操作期间父对象被删除的逻辑
5. 操作完成后如果父对象仍存在则正确重新设置父对象
这些修改防止了在异步配置操作期间父对象被删除时可能导致的崩溃,对于多线程
场景下父对象可能在操作挂起时被销毁的情况尤为重要。
Updated the dvtablehook.h file to adjust the typedef for Fun2ReturnType
based on changes in Qt 6.9 interfaces. Additionally, the main.cpp
file now casts the unicode value to short to prevent type issues.
These changes are necessary to ensure compatibility with the latest
Qt framework and to resolve the build issues that arise from interface
modifications.
修复: 解决在Qt 6.9上的编译失败
更新了dvtablehook.h文件,以根据Qt 6.9接口的变化调整Fun2ReturnType的
typedef。此外,main.cpp文件现在将unicode值转换为short,以防止类型问题。
这些更改对于确保与最新Qt框架兼容以及解决接口修改引起的构建问题是必要的。
Direct string literal for the property name, because the literal was
use on the Q_PROPERTY macro, so use the hex encode for the property name
strings can't avoid the Chinese text codec problems.
- remove duplicate results when permuting and combining Pinyin
- limit the number of results to avoid of OOM
- ch2py print elapsed time
Issue: https://github.com/linuxdeepin/dtk/issues/109
cmake -DDVERSION=6.0.0 to build libdtk6core
install qdbusxml2cpp-fix to DCore/bin to avoid conficts
do not build doc when build dtk6
remove Core5Compat depends
DVERSION ==> DTK_VERSION
tools install to CMAKE_INSTALL_LIBEXECDIR
1. Add a comment to introduce a real example of the tool.
2. Fix possible fileName acquisition failures in export scenarios
Log:
Influence: None
Change-Id: I752d8d3548793af35b25f748d0f255a86dc32c8f
Soft link directories retain the original directory
rather than the directory in the relative DCI file,
resulting in the target file not being indexed correctly
Log:
Influence: dci tool
Change-Id: I15779b6b2552537ac2fd8be8f856d7b3d27be44e