* apply patch by Blaise.ru to remove last remnants of VMT regeneration which is no longer needed/used

git-svn-id: trunk@43628 -
This commit is contained in:
svenbarth 2019-12-02 22:29:29 +00:00
parent b86b2f1b80
commit f2818bfe7a
2 changed files with 7 additions and 21 deletions

View File

@ -801,7 +801,6 @@ implementation
vmtdef: trecorddef;
systemvmt: tdef;
sym: tsym;
vmtdefname: TIDString;
begin
{ these types don't have an actual VMT, we only use the other methods
in TVMTBuilder to determine duplicates/overrides }
@ -826,13 +825,9 @@ implementation
if _class.objecttype = odt_cppclass then
exit;
{ the VMT definition may already exist in case of generics }
vmtdefname:=internaltypeprefixName[itp_vmtdef]+_class.mangledparaname;
if assigned(try_search_current_module_type(vmtdefname)) then
exit;
{ create VMT type definition }
vmtdef:=crecorddef.create_global_internal(
vmtdefname,
internaltypeprefixName[itp_vmtdef]+_class.mangledparaname,
0,
target_info.alignment.recordalignmin);
{$ifdef llvm}
@ -906,8 +901,6 @@ implementation
old_current_structdef:=current_structdef;
current_structdef:=_class;
_class.resetvmtentries;
{ inherit (copy) VMT from parent object }
if assigned(_class.childof) then
_class.copyvmtentries(_class.childof);

View File

@ -493,7 +493,6 @@ interface
procedure buildderef;override;
procedure deref;override;
procedure derefimpl;override;
procedure resetvmtentries;
procedure copyvmtentries(objdef:tobjectdef);
function getparentdef:tdef;override;
function size : asizeint;override;
@ -7267,6 +7266,8 @@ implementation
destructor tobjectdef.destroy;
var
i: longint;
begin
if assigned(symtable) then
begin
@ -7287,7 +7288,8 @@ implementation
end;
if assigned(vmtentries) then
begin
resetvmtentries;
for i:=0 to vmtentries.count-1 do
dispose(pvmtentry(vmtentries[i]));
vmtentries.free;
vmtentries:=nil;
end;
@ -7532,22 +7534,13 @@ implementation
end;
procedure tobjectdef.resetvmtentries;
var
i : longint;
begin
for i:=0 to vmtentries.Count-1 do
Dispose(pvmtentry(vmtentries[i]));
vmtentries.clear;
end;
procedure tobjectdef.copyvmtentries(objdef:tobjectdef);
var
i : longint;
vmtentry : pvmtentry;
begin
resetvmtentries;
if vmtentries.count<>0 then
internalerror(2019081401);
vmtentries.count:=objdef.vmtentries.count;
for i:=0 to objdef.vmtentries.count-1 do
begin