fix(extern): 原地更新 export_extern_funcs
translator 与 LlvmGen 共享同一 dict 引用;替换属性导致 Gen 仍指向旧空 dict。改为 clear+update,确保跨模块 extern 裸名生效。
This commit is contained in:
1 parent
ed76f77218
commit
f91fb7dcca
1 file changed
+3
-2
@@ -2405,7 +2405,8 @@ class Phase2Translator:
|
||||
_combined_extern[_node.name] = _sha1_key
|
||||
except Exception:
|
||||
continue
|
||||
trans.translator._export_extern_funcs = _combined_extern
|
||||
trans.translator._export_extern_funcs.clear()
|
||||
trans.translator._export_extern_funcs.update(_combined_extern)
|
||||
if self._shared_generic_class_templates:
|
||||
if not hasattr(trans.translator.ClassHandler, '_generic_class_templates'):
|
||||
trans.translator.ClassHandler._generic_class_templates = {}
|
||||
@@ -2427,7 +2428,7 @@ class Phase2Translator:
|
||||
raise
|
||||
_vlog().warning(f"收集导出外部函数声明失败: {_e}", "Exception")
|
||||
if export_extern_funcs:
|
||||
trans.translator._export_extern_funcs = export_extern_funcs
|
||||
trans.translator._export_extern_funcs.update(export_extern_funcs)
|
||||
|
||||
for includes_dir in self.include_dirs:
|
||||
if os.path.isdir(includes_dir):
|
||||
|
||||
Reference in new issue
Block a user