summaryrefslogtreecommitdiff
path: root/compiler/fmodule.pas
diff options
context:
space:
mode:
authorsteve <steve@3ad0048d-3df7-0310-abae-a5850022a9f2>2016-05-30 16:57:13 +0000
committersteve <steve@3ad0048d-3df7-0310-abae-a5850022a9f2>2016-05-30 16:57:13 +0000
commit6b082ee8b43e52fe18c5799f8f4c82a8c7519f5b (patch)
treef906b179f5b20f4be91a286f8f5a01fc4fac51e2 /compiler/fmodule.pas
parent554d71b9e544a9776797dcca9983060fd998fd0b (diff)
parentba5f910eaac131cb7d3553c9bef173a81c422a1c (diff)
downloadfpc-interfacertti.tar.gz
auto-merge: trunk -> InterfaceRTTIinterfacertti
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/interfacertti@33858 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/fmodule.pas')
-rw-r--r--compiler/fmodule.pas13
1 files changed, 9 insertions, 4 deletions
diff --git a/compiler/fmodule.pas b/compiler/fmodule.pas
index e8f271eddd..32d7a2c22f 100644
--- a/compiler/fmodule.pas
+++ b/compiler/fmodule.pas
@@ -195,6 +195,9 @@ interface
non-generic typename and the data is a TFPObjectList of tgenericdummyentry
instances whereby the last one is the current top most one }
genericdummysyms: TFPHashObjectList;
+ { contains a list of specializations for which the method bodies need
+ to be generated }
+ pendingspecializations : TFPHashObjectList;
{ this contains a list of units that needs to be waited for until the
unit can be finished (code generated, etc.); this is needed to handle
@@ -585,6 +588,7 @@ implementation
checkforwarddefs:=TFPObjectList.Create(false);
extendeddefs:=TFPHashObjectList.Create(true);
genericdummysyms:=tfphashobjectlist.create(true);
+ pendingspecializations:=tfphashobjectlist.create(false);
waitingforunit:=tfpobjectlist.create(false);
waitingunits:=tfpobjectlist.create(false);
globalsymtable:=nil;
@@ -677,6 +681,7 @@ implementation
FImportLibraryList.Free;
extendeddefs.Free;
genericdummysyms.free;
+ pendingspecializations.free;
waitingforunit.free;
waitingunits.free;
stringdispose(asmprefix);
@@ -774,6 +779,8 @@ implementation
wpoinfo:=nil;
checkforwarddefs.free;
checkforwarddefs:=TFPObjectList.Create(false);
+ unitimportsyms.free;
+ unitimportsyms:=TFPObjectList.Create(false);
derefdata.free;
derefdata:=TDynamicArray.Create(1024);
if assigned(unitmap) then
@@ -806,6 +813,8 @@ implementation
dependent_units:=TLinkedList.Create;
resourcefiles.Free;
resourcefiles:=TCmdStrList.Create;
+ pendingspecializations.free;
+ pendingspecializations:=tfphashobjectlist.create(false);
linkunitofiles.Free;
linkunitofiles:=TLinkContainer.Create;
linkunitstaticlibs.Free;
@@ -1049,10 +1058,6 @@ implementation
macrosymtablestack.free;
macrosymtablestack:=nil;
end;
- extendeddefs.free;
- extendeddefs:=nil;
- genericdummysyms.free;
- genericdummysyms:=nil;
waitingforunit.free;
waitingforunit:=nil;
localmacrosymtable.free;