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

1.5 KiB
Raw Permalink Blame History

BUG-20260511-0009

适用场景:记录问题本身,不展开完整修复方案。修复内容写入对应的 Fix 文档。

基本信息

  • ID: BUG-20260511-0009
  • 标题: TabControl::indexOf 未命中时返回最后索引
  • 状态:已修复
  • 严重性:S3
  • 优先级:P2
  • 模块: TabControl
  • 版本 / 分支: 当前工作区
  • 环境: Windows / EasyX / z-testDome 回归场景
  • 发现人: Codex 巡检
  • 关联 Fix ID: Fix-BUG-20260511-0009

问题描述

  • 现象: TabControl::indexOf(const std::string& tabText) const 在未找到目标页签时返回循环后的最后索引。
  • 影响范围: 依赖 indexOf() 判断页签是否存在的调用方可能把“不存在”误判为最后一个页签。
  • 期望结果: 找到匹配页签时返回对应索引;未找到时返回 -1
  • 实际结果: 未找到时返回最后一个页签的索引。

复现信息

  • 前置条件:[可选]
  • 复现步骤:
  1. 构造包含至少一个页签的 TabControl
  2. 调用 indexOf() 查询不存在的页签文本。
  3. 观察返回值。
  • 复现概率:必现
  • 最小复现 Demo[可选]
  • 证据:源码巡检可证

初步分析

  • 疑似位置: TabControl.cpp::indexOf
  • 触发条件: 查询文本不存在。
  • 相关线索: 函数名和预期语义要求“不存在返回 -1”,但旧实现返回 idx
  • 最近相关改动:[可选]

跟踪信息

  • 首次发现时间: 2026-05-11
  • 最后更新时间: 2026-05-11
  • 修复版本: 当前工作区
  • 验证版本: KEY1 ~ KEY6 编译验证通过
  • 备注:[可选]