|
@@ -1081,12 +1081,15 @@ implementation
|
|
{ this might happen for procsyms in classes that override symbols
|
|
{ this might happen for procsyms in classes that override symbols
|
|
in a parent class that generic overloads }
|
|
in a parent class that generic overloads }
|
|
if assigned(fgenprocsymovlds) then
|
|
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;
|
|
|
|
|
|
+ begin
|
|
|
|
+ fgenprocsymovldsderefs.capacity:=fgenprocsymovldsderefs.count+fgenprocsymovlds.count;
|
|
|
|
+ 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;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1102,6 +1105,7 @@ implementation
|
|
ProcdefList.Clear;
|
|
ProcdefList.Clear;
|
|
if not assigned(FProcdefDerefList) then
|
|
if not assigned(FProcdefDerefList) then
|
|
internalerror(200611031);
|
|
internalerror(200611031);
|
|
|
|
+ ProcdefList.capacity:=FProcdefDerefList.count;
|
|
for i:=0 to FProcdefDerefList.Count-1 do
|
|
for i:=0 to FProcdefDerefList.Count-1 do
|
|
begin
|
|
begin
|
|
d.dataidx:=PtrInt(FProcdefDerefList[i]);
|
|
d.dataidx:=PtrInt(FProcdefDerefList[i]);
|
|
@@ -1117,6 +1121,7 @@ implementation
|
|
if assigned(fgenprocsymovlds) then
|
|
if assigned(fgenprocsymovlds) then
|
|
begin
|
|
begin
|
|
fgenprocsymovlds.clear;
|
|
fgenprocsymovlds.clear;
|
|
|
|
+ fgenprocsymovlds.capacity:=fgenprocsymovldsderefs.count;
|
|
for i:= 0 to fgenprocsymovldsderefs.count-1 do
|
|
for i:= 0 to fgenprocsymovldsderefs.count-1 do
|
|
begin
|
|
begin
|
|
d.dataidx:=ptrint(fgenprocsymovldsderefs[i]);
|
|
d.dataidx:=ptrint(fgenprocsymovldsderefs[i]);
|