清理了 t.CVoid
This commit is contained in:
1 parent
9a191daa8d
commit
cb0836de8a
43 files changed
+274
-355
No files matched your search
@@ -792,8 +792,7 @@ def _BuildReachableSha1Set(mb: rawptr[memhub.MemBuddy], source_dir: str,
|
||||
if scan_res_r is not None:
|
||||
es_r: sizet = IncludesScanner.FileEntry.__sizeof__()
|
||||
for e_i_r in range(scan_res_r.Count):
|
||||
e_r: IncludesScanner.FileEntry | t.CPtr = (IncludesScanner.FileEntry | t.CPtr)(
|
||||
t.CVoid(uint64(scan_res_r.Entries) + uint64(e_i_r) * es_r, t.CPtr))
|
||||
e_r: IncludesScanner.FileEntry | t.CPtr = (IncludesScanner.FileEntry | t.CPtr)(uint64(scan_res_r.Entries) + uint64(e_i_r) * es_r)
|
||||
if e_r is None or e_r.Path is None:
|
||||
continue
|
||||
# 文件级 mark:parse 完立即回收 AST(App 全量 parse 驻留会 OOM)
|
||||
@@ -914,7 +913,7 @@ def _BuildReachableSha1Set(mb: rawptr[memhub.MemBuddy], source_dir: str,
|
||||
stdlib.free(worklist)
|
||||
stdlib.free(processed)
|
||||
return -1
|
||||
wl_pos_slot: sizet | t.CPtr = (sizet | t.CPtr)(t.CVoid(wl_pos, t.CPtr))
|
||||
wl_pos_slot: sizet | t.CPtr = (sizet | t.CPtr)(wl_pos)
|
||||
wl_pos_slot[0] = 0
|
||||
|
||||
while wl_pos_slot[0] < wl_len:
|
||||
@@ -987,10 +986,10 @@ def _BuildReachableSha1Set(mb: rawptr[memhub.MemBuddy], source_dir: str,
|
||||
# 输出槽防御性初始化(成功路径必全写;未找到/未命中时仅 free 槽本身)
|
||||
# 槽联合必须用 (sizet | t.CPtr):t.CPtr|t.CPtr 会被折叠成 t.CPtr,
|
||||
# [0] 变成 1 字节访问 → 指针被截断(0x2e 崩溃根因)。CSizeT 成员为
|
||||
# 8 字节,经 t.CVoid 显式做 u64↔指针转换。
|
||||
abs_slot: sizet | t.CPtr = (sizet | t.CPtr)(t.CVoid(out_abs, t.CPtr))
|
||||
rel_slot: sizet | t.CPtr = (sizet | t.CPtr)(t.CVoid(out_rel, t.CPtr))
|
||||
inc_slot: sizet | t.CPtr = (sizet | t.CPtr)(t.CVoid(out_inc, t.CPtr))
|
||||
# 8 字节,经 t\.CVoid 显式做 u64↔指针转换。
|
||||
abs_slot: sizet | t.CPtr = (sizet | t.CPtr)(out_abs)
|
||||
rel_slot: sizet | t.CPtr = (sizet | t.CPtr)(out_rel)
|
||||
inc_slot: sizet | t.CPtr = (sizet | t.CPtr)(out_inc)
|
||||
abs_slot[0] = 0
|
||||
rel_slot[0] = 0
|
||||
inc_slot[0] = 0
|
||||
@@ -1003,9 +1002,9 @@ def _BuildReachableSha1Set(mb: rawptr[memhub.MemBuddy], source_dir: str,
|
||||
stdlib.free(out_inc)
|
||||
stdlib.free(mod_buf)
|
||||
continue
|
||||
abs_path: str = (str)(t.CVoid(abs_slot[0], t.CPtr))
|
||||
rel_path: str = (str)(t.CVoid(rel_slot[0], t.CPtr))
|
||||
inc_dir: str = (str)(t.CVoid(inc_slot[0], t.CPtr))
|
||||
abs_path: str = str(abs_slot[0])
|
||||
rel_path: str = str(rel_slot[0])
|
||||
inc_dir: str = str(inc_slot[0])
|
||||
|
||||
# 读文件 + 计算 SHA1(CRLF→LF,与 IncludesScanner 一致)
|
||||
sha1_r2: str = IncludesScanner.compute_file_sha1(mb, abs_path)
|
||||
|
||||
Reference in new issue
Block a user