* apply (adjusted) patch by Blaise.ru: vmtentries is always created since 2008, so treat it as such (also fixes a memory leak in tobjectdef.getcopy)

git-svn-id: trunk@43626 -
This commit is contained in:
svenbarth 2019-12-02 06:59:05 +00:00
parent ea75253926
commit 3ced30f816
3 changed files with 2 additions and 12 deletions

View File

@ -966,8 +966,6 @@ implementation
hs : string;
{$endif vtentry}
begin
if not assigned(_class.VMTEntries) then
exit;
for i:=0 to _class.VMTEntries.Count-1 do
begin
vmtentry:=pvmtentry(_class.vmtentries[i]);

View File

@ -910,11 +910,7 @@ implementation
{ inherit (copy) VMT from parent object }
if assigned(_class.childof) then
begin
if not assigned(_class.childof.vmtentries) then
internalerror(200810281);
_class.copyvmtentries(_class.childof);
end;
_class.copyvmtentries(_class.childof);
{ process all procdefs, we must process the defs to
keep the same order as that is written in the source

View File

@ -7331,11 +7331,7 @@ implementation
for i:=0 to ImplementedInterfaces.count-1 do
tobjectdef(result).ImplementedInterfaces.Add(TImplementedInterface(ImplementedInterfaces[i]).Getcopy);
end;
if assigned(vmtentries) then
begin
tobjectdef(result).vmtentries:=TFPList.Create;
tobjectdef(result).copyvmtentries(self);
end;
tobjectdef(result).copyvmtentries(self);
end;