Sfoglia il codice sorgente

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

git-svn-id: trunk@37340 -
svenbarth 7 anni fa
parent
commit
b765d661ce
1 ha cambiato i file con 9 aggiunte e 0 eliminazioni
  1. 9 0
      compiler/symdef.pas

+ 9 - 0
compiler/symdef.pas

@@ -2215,6 +2215,9 @@ implementation
 
 
 
 
    procedure tstoreddef.register_def;
    procedure tstoreddef.register_def;
+     var
+       gst : tgetsymtable;
+       st : tsymtable;
      begin
      begin
        if registered then
        if registered then
          exit;
          exit;
@@ -2222,6 +2225,12 @@ implementation
        if assigned(current_module) then
        if assigned(current_module) then
          begin
          begin
            exclude(defoptions,df_not_registered_no_free);
            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
            if defid<defid_not_registered then
              defid:=deflist_index
              defid:=deflist_index
            else
            else