Prechádzať zdrojové kódy

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

git-svn-id: trunk@37340 -
svenbarth 7 rokov pred
rodič
commit
b765d661ce
1 zmenil súbory, kde vykonal 9 pridanie a 0 odobranie
  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