mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-25 10:21:44 +02:00
* 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 -
This commit is contained in:
parent
e17d1c9b37
commit
eeb98ae2f8
@ -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;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user