Files
StellarX-kaifa/开发记录/Fix/Fix-BUG-20260511-0009-TabControl-indexOf未命中返回值修复.md
T
Codex 9155a86a8a 发布前托管重绘与布局封版收口
收口 Dialog/overlay 后鼠标状态同步、Tooltip 临时 coverage 与持久 coverage 拆分、跨 root 脏区补提交、TextBox/Button 绘制副作用修复,并补充 KEY6 回归用例和 BUG/Fix/Feature 开发记录。
2026-05-17 00:26:08 +08:00

1.7 KiB
Raw Blame History

Fix-BUG-20260511-0009

适用场景:记录某个 BUG 的修复方案、影响评估、验证结果与落地信息。

关联信息

  • Fix ID: Fix-BUG-20260511-0009
  • 关联 BUG ID: BUG-20260511-0009
  • 修复目标: 保证 TabControl::indexOf() 未命中时返回 -1
  • 状态:已完成
  • 负责人: Codex
  • 分支 / 版本: 当前工作区

根因分析

  • 根因: indexOf() 循环结束后直接返回 idx,没有显式处理未命中分支。
  • 触发条件: 查询不存在的页签文本。
  • 为什么之前没发现:[可选] 当前测试更多关注页签切换行为,未覆盖未命中返回值。
  • 关键证据:[可选] TabControl.cpp 旧实现未命中路径返回最后索引。

修复方案

  • 修复思路: 未找到匹配项时显式返回 -1
  • 关键改动: 将 TabControl::indexOf() 末尾返回值从 idx 改为 -1
  • 涉及文件 / 类 / 函数: TabControl.cpp::TabControl::indexOf
  • 影响的 API / 行为:[可选] 行为修正;符合函数语义。
  • 关键约束 / 不变量:[可选] 找到时仍返回真实索引。
  • 回滚点 / 开关:[可选] 无

影响评估

  • 影响范围: 仅影响 indexOf() 未命中返回值。
  • 兼容性影响:无
  • 行为变化:有(未命中从最后索引修正为 -1
  • 性能影响:无
  • 回归风险: 低

验证结果

  • 验证步骤:
  1. 编译 TabControl.cpp
  2. 编译 z-testDome.cppKEY1 ~ KEY6
  3. 静态确认未命中路径返回 -1
  • 验证结果: 编译通过
  • 回归检查:[可选] KEY1 ~ KEY6 编译级回归通过
  • 验证证据:[可选]

落地信息

  • Commit: 未提交
  • PR[可选]
  • 发布版本:[可选]
  • 备注:[可选]