mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-13 11:09:13 +02:00
* Fix tgeneric91, need to postpone some additional generic procedures
This commit is contained in:
parent
b2bc020fd7
commit
22de07446d
@ -272,6 +272,7 @@ interface
|
||||
procedure add_public_asmsym(const name:TSymStr;bind:TAsmsymbind;typ:Tasmsymtype);
|
||||
procedure add_extern_asmsym(sym:TAsmSymbol);
|
||||
procedure add_extern_asmsym(const name:TSymStr;bind:TAsmsymbind;typ:Tasmsymtype);
|
||||
procedure remove_from_waitingforunits(amodule : tmodule);
|
||||
property ImportLibraryList : TFPHashObjectList read FImportLibraryList;
|
||||
function ToString: RTLString; override;
|
||||
end;
|
||||
@ -1359,6 +1360,13 @@ implementation
|
||||
tasmsymbol.create(externasmsyms,name,bind,typ);
|
||||
end;
|
||||
|
||||
procedure tmodule.remove_from_waitingforunits(amodule: tmodule);
|
||||
begin
|
||||
// It can be nil after when this is called after end_of_parsing was called.
|
||||
if assigned(waitingforunit) then
|
||||
waitingforunit.remove(amodule);
|
||||
end;
|
||||
|
||||
function tmodule.ToString: RTLString;
|
||||
begin
|
||||
// Assigned self so we can detect nil.
|
||||
|
@ -2865,8 +2865,11 @@ uses
|
||||
) and
|
||||
{ may not be assigned in case it's a synthetic procdef that
|
||||
still needs to be generated }
|
||||
assigned(tprocdef(hp).genericdef) and
|
||||
tprocdef(tprocdef(hp).genericdef).forwarddef then
|
||||
(assigned(tprocdef(hp).genericdef) and
|
||||
tprocdef(tprocdef(hp).genericdef).forwarddef)
|
||||
{ when the implementation of the module was not yet parsed, it will not yet have a generictokenbuf }
|
||||
or not assigned(tprocdef(tprocdef(hp).genericdef).generictokenbuf) then
|
||||
|
||||
begin
|
||||
result:=false;
|
||||
continue;
|
||||
|
@ -1733,7 +1733,7 @@ type
|
||||
for i:=0 to module.waitingunits.count-1 do
|
||||
begin
|
||||
waitingmodule:=tmodule(module.waitingunits[i]);
|
||||
waitingmodule.waitingforunit.remove(module);
|
||||
waitingmodule.remove_from_waitingforunits(module);
|
||||
end;
|
||||
|
||||
{$ifdef DEBUG_NODE_XML}
|
||||
|
Loading…
Reference in New Issue
Block a user