fix(vpi): 返回注解索引重建的键长常量拼写修正为 VPI_KEY_LEN
_vpi_rebuild_ret_idx 里把键长写成了不存在的 VPI_RET_KEY_LEN(参数侧另有 VPI_PARAM_KEY_LEN=224,本文件仅定义 VPI_KEY_LEN=224 与 VPI_PARAM_KEY_LEN)。此前该未定义标识符被旧规则按类型零值兜底编成 0,使重放偏移 ri*0 恒为 0(每条键都从第 0 条键位置读取),返回注解索引重建结果错误;因探测用 live 键比较,表现为未命中回退线性扫描——结果仍正确但索引形同无效。 这解释了此前实测中 _lookup_vpi_ret_annot 加索引后仍有约 913K 次 strcmp(返回侧索引一直未生效),而参数侧索引生效并从榜单消失。改为本文件既有且返回侧一致使用的 VPI_KEY_LEN(malloc/memset/查找/写入各处均用该常量)。
This commit is contained in:
1 parent
a46391bf42
commit
7fabf886fc
1 file changed
+1
-1
@@ -184,7 +184,7 @@ def _vpi_rebuild_ret_idx(new_cap: int) -> int:
|
||||
ri: int
|
||||
for ri in range(_g_vpi_ret_count):
|
||||
if _vpi_idx_insert(new_idx, new_cap, ri,
|
||||
_g_vpi_ret_keys + ri * VPI_RET_KEY_LEN) != 0:
|
||||
_g_vpi_ret_keys + ri * VPI_KEY_LEN) != 0:
|
||||
fail = 1
|
||||
break
|
||||
if fail != 0:
|
||||
|
||||
Reference in new issue
Block a user