|
@@ -91,6 +91,7 @@ interface
|
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
|
procedure load_references(ppufile:tcompilerppufile;locals:boolean);override;
|
|
|
procedure write_references(ppufile:tcompilerppufile;locals:boolean);override;
|
|
|
+ procedure derefimpl; override;
|
|
|
procedure addfield(sym:tfieldvarsym);
|
|
|
procedure insertfield(sym:tfieldvarsym);
|
|
|
procedure addalignmentpadding;
|
|
@@ -565,6 +566,7 @@ implementation
|
|
|
procedure tstoredsymtable.derefimpl;
|
|
|
var
|
|
|
hp : tdef;
|
|
|
+ hs: tsym;
|
|
|
begin
|
|
|
{ definitions }
|
|
|
hp:=tdef(defindex.first);
|
|
@@ -573,6 +575,13 @@ implementation
|
|
|
hp.derefimpl;
|
|
|
hp:=tdef(hp.indexnext);
|
|
|
end;
|
|
|
+ { symbols }
|
|
|
+ hs:=tsym(symindex.first);
|
|
|
+ while assigned(hs) do
|
|
|
+ begin
|
|
|
+ hs.derefimpl;
|
|
|
+ hs:=tsym(hs.indexnext);
|
|
|
+ end;
|
|
|
end;
|
|
|
|
|
|
|
|
@@ -877,6 +886,19 @@ implementation
|
|
|
end;
|
|
|
|
|
|
|
|
|
+ procedure tabstractrecordsymtable.derefimpl;
|
|
|
+ var
|
|
|
+ storesymtable : tsymtable;
|
|
|
+ begin
|
|
|
+ storesymtable:=aktrecordsymtable;
|
|
|
+ aktrecordsymtable:=self;
|
|
|
+
|
|
|
+ inherited derefimpl;
|
|
|
+
|
|
|
+ aktrecordsymtable:=storesymtable;
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
procedure tabstractrecordsymtable.addfield(sym:tfieldvarsym);
|
|
|
var
|
|
|
l : aint;
|