瀏覽代碼

* when registering a def also register the syms and defs of its symtables

git-svn-id: trunk@37340 -
svenbarth 7 年之前
父節點
當前提交
b765d661ce
共有 1 個文件被更改,包括 9 次插入0 次删除
  1. 9 0
      compiler/symdef.pas

+ 9 - 0
compiler/symdef.pas

@@ -2215,6 +2215,9 @@ implementation
 
 
    procedure tstoreddef.register_def;
+     var
+       gst : tgetsymtable;
+       st : tsymtable;
      begin
        if registered then
          exit;
@@ -2222,6 +2225,12 @@ implementation
        if assigned(current_module) then
          begin
            exclude(defoptions,df_not_registered_no_free);
+           for gst:=low(tgetsymtable) to high(tgetsymtable) do
+             begin
+               st:=getsymtable(gst);
+               if assigned(st) then
+                 tstoredsymtable(st).register_children;
+             end;
            if defid<defid_not_registered then
              defid:=deflist_index
            else