mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-14 09:29:19 +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_public_asmsym(const name:TSymStr;bind:TAsmsymbind;typ:Tasmsymtype);
|
||||||
procedure add_extern_asmsym(sym:TAsmSymbol);
|
procedure add_extern_asmsym(sym:TAsmSymbol);
|
||||||
procedure add_extern_asmsym(const name:TSymStr;bind:TAsmsymbind;typ:Tasmsymtype);
|
procedure add_extern_asmsym(const name:TSymStr;bind:TAsmsymbind;typ:Tasmsymtype);
|
||||||
|
procedure remove_from_waitingforunits(amodule : tmodule);
|
||||||
property ImportLibraryList : TFPHashObjectList read FImportLibraryList;
|
property ImportLibraryList : TFPHashObjectList read FImportLibraryList;
|
||||||
function ToString: RTLString; override;
|
function ToString: RTLString; override;
|
||||||
end;
|
end;
|
||||||
@ -1359,6 +1360,13 @@ implementation
|
|||||||
tasmsymbol.create(externasmsyms,name,bind,typ);
|
tasmsymbol.create(externasmsyms,name,bind,typ);
|
||||||
end;
|
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;
|
function tmodule.ToString: RTLString;
|
||||||
begin
|
begin
|
||||||
// Assigned self so we can detect nil.
|
// Assigned self so we can detect nil.
|
||||||
|
@ -2865,8 +2865,11 @@ uses
|
|||||||
) and
|
) and
|
||||||
{ may not be assigned in case it's a synthetic procdef that
|
{ may not be assigned in case it's a synthetic procdef that
|
||||||
still needs to be generated }
|
still needs to be generated }
|
||||||
assigned(tprocdef(hp).genericdef) and
|
(assigned(tprocdef(hp).genericdef) and
|
||||||
tprocdef(tprocdef(hp).genericdef).forwarddef then
|
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
|
begin
|
||||||
result:=false;
|
result:=false;
|
||||||
continue;
|
continue;
|
||||||
|
@ -1733,7 +1733,7 @@ type
|
|||||||
for i:=0 to module.waitingunits.count-1 do
|
for i:=0 to module.waitingunits.count-1 do
|
||||||
begin
|
begin
|
||||||
waitingmodule:=tmodule(module.waitingunits[i]);
|
waitingmodule:=tmodule(module.waitingunits[i]);
|
||||||
waitingmodule.waitingforunit.remove(module);
|
waitingmodule.remove_from_waitingforunits(module);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$ifdef DEBUG_NODE_XML}
|
{$ifdef DEBUG_NODE_XML}
|
||||||
|
Loading…
Reference in New Issue
Block a user