Explorar el Código

* write objectdef fieldtypes in appenddef_object() instead of in
beforeappenddef() to prevent endless loops in certain circular
class reference situations (mantis #22527)

git-svn-id: trunk@22233 -

Jonas Maebe hace 13 años
padre
commit
eeb98ae2f8
Se han modificado 1 ficheros con 1 adiciones y 1 borrados
  1. 1 1
      compiler/dbgstabs.pas

+ 1 - 1
compiler/dbgstabs.pas

@@ -839,6 +839,7 @@ implementation
       var
       var
         oldtypesym : tsym;
         oldtypesym : tsym;
       begin
       begin
+        tobjectdef(def).symtable.symList.ForEachCall(@field_write_defs,list);
         { classes require special code to write the record and the invisible pointer }
         { classes require special code to write the record and the invisible pointer }
         if is_class(def) then
         if is_class(def) then
           begin
           begin
@@ -1080,7 +1081,6 @@ implementation
                     for i:=0 to anc.ImplementedInterfaces.Count-1 do
                     for i:=0 to anc.ImplementedInterfaces.Count-1 do
                       appenddef(list,TImplementedInterface(anc.ImplementedInterfaces[i]).IntfDef);
                       appenddef(list,TImplementedInterface(anc.ImplementedInterfaces[i]).IntfDef);
                 end;
                 end;
-              tobjectdef(def).symtable.symList.ForEachCall(@field_write_defs,list);
             end;
             end;
         end;
         end;
       end;
       end;