mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 01:08:07 +02:00
* allow sp_generic_dummysym for procsyms even if there are no generic overloads
This commit is contained in:
parent
04631040b8
commit
bfe5733624
@ -1074,18 +1074,19 @@ implementation
|
||||
end;
|
||||
if sp_generic_dummy in symoptions then
|
||||
begin
|
||||
if not assigned(fgenprocsymovlds) then
|
||||
internalerror(2021010602);
|
||||
if not assigned(fgenprocsymovldsderefs) then
|
||||
fgenprocsymovldsderefs:=tfplist.create
|
||||
else
|
||||
fgenprocsymovldsderefs.clear;
|
||||
for i:=0 to fgenprocsymovlds.count-1 do
|
||||
begin
|
||||
sym:=tprocsym(fgenprocsymovlds[i]);
|
||||
d.build(sym);
|
||||
fgenprocsymovldsderefs.add(pointer(ptrint(d.dataidx)));
|
||||
end;
|
||||
{ this might happen for procsyms in classes that override symbols
|
||||
in a parent class that generic overloads }
|
||||
if assigned(fgenprocsymovlds) then
|
||||
for i:=0 to fgenprocsymovlds.count-1 do
|
||||
begin
|
||||
sym:=tprocsym(fgenprocsymovlds[i]);
|
||||
d.build(sym);
|
||||
fgenprocsymovldsderefs.add(pointer(ptrint(d.dataidx)));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1109,16 +1110,19 @@ implementation
|
||||
end;
|
||||
if sp_generic_dummy in symoptions then
|
||||
begin
|
||||
if not assigned(fgenprocsymovlds) then
|
||||
internalerror(2021010603);
|
||||
{if not assigned(fgenprocsymovlds) then
|
||||
internalerror(2021010603);}
|
||||
if not assigned(fgenprocsymovldsderefs) then
|
||||
internalerror(2021010302);
|
||||
fgenprocsymovlds.clear;
|
||||
for i:= 0 to fgenprocsymovldsderefs.count-1 do
|
||||
if assigned(fgenprocsymovlds) then
|
||||
begin
|
||||
d.dataidx:=ptrint(fgenprocsymovldsderefs[i]);
|
||||
sym:=tprocsym(d.resolve);
|
||||
fgenprocsymovlds.add(sym);
|
||||
fgenprocsymovlds.clear;
|
||||
for i:= 0 to fgenprocsymovldsderefs.count-1 do
|
||||
begin
|
||||
d.dataidx:=ptrint(fgenprocsymovldsderefs[i]);
|
||||
sym:=tprocsym(d.resolve);
|
||||
fgenprocsymovlds.add(sym);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user