Files
StellarX-kaifa/开发记录/功能变更/Feature-20260409-0001-基础资源所有权与生命周期收口.md

2.2 KiB
Raw Permalink Blame History

功能变更 ID: Feature-20260409-0001

适用场景:记录小到中等规模的功能、接口、行为、默认值或配置变化。 不适用场景:新增核心模块、重大模块重构、架构级设计,请使用“新增功能模块”模板。

基本信息

  • ID: Feature-20260409-0001
  • 标题: 基础资源所有权与生命周期收口
  • 状态:已完成
  • 类型:修改
  • 级别:L2 中等
  • 模块:Control / Window / Button / Table / Label
  • 版本 / 分支:master
  • 环境:Windows + EasyX + VS2022
  • 负责人:Codex 协作修改

变更背景

  • 背景:
    • 初始版本中一部分资源持有关系不明确,析构顺序和边界输入处理存在隐患。
  • 目标:
    • 提高基础稳定性与维护性。
  • 不做什么:[可选]
    • 不处理字符集体系切换问题。

变更内容

  • 变更摘要:
    • 收紧资源所有权,调整析构顺序,补齐基础控件边界防御。
  • 新增项:[可选]
    • Control 提供更明确的快照有效性查询和宿主窗口回溯能力。
  • 修改项:[可选]
    • Window 析构顺序调整
    • Table 行数据规范化、空状态防御、页数保护
    • Label 动态文本变化处理
  • 删除 / 废弃项:[可选]
    • MessageBox 外层强制 Dialog 初始化的做法被移除
  • 受影响的文件 / 类 / 函数:
    • Control.h / Control.cpp
    • Window.h / Window.cpp
    • Button.h / Button.cpp
    • Table.h / Table.cpp
    • Label.cpp
    • MessageBox.cpp
  • 对外 API / 属性变化:[可选]
    • Button 回调设置接口语义更正常

行为对照

  • 变更前:
    • 生命周期和边界输入更依赖使用者自觉,异常输入容易直接进入绘制或析构链。
  • 变更后:
    • 基础控件会主动规范化一部分输入,生命周期顺序更安全。
  • 兼容性说明:兼容
  • 迁移说明:[可选]
    • 无强制迁移要求

验证与落地

  • 验证方式:
    • 静态审查 + 编译验证 + 现有测试用例回归
  • 验证结果:
    • 主要基础问题已收敛
  • 关联 BUG / Fix[可选]
    • BUG-20260409-0002
    • Fix-BUG-20260409-0002
  • Commit:
    • 早期工作区修改 + 4a6e153 + 7f8431a
  • PR[可选]
  • 发布版本:[可选]
  • 备注:[可选]
    • 其中一部分修改早于仓库基线