+ provide a tsym based variant of ChangeOwnerAndName

This commit is contained in:
Sven/Sarah Barth 2022-01-17 22:18:40 +01:00
parent a7a0f47d98
commit eaeb614887
2 changed files with 11 additions and 1 deletions

View File

@ -680,7 +680,7 @@ uses
for i:=0 to unnamed_syms.count-1 do
begin
sym:=tsym(unnamed_syms[i]);
sym.ChangeOwnerAndName(owner.symlist,sym.realname);
sym.ChangeOwnerAndName(owner,sym.realname);
end;
unnamed_syms.clear;
end;

View File

@ -143,6 +143,7 @@ interface
procedure buildderef;virtual;
procedure deref;virtual;
procedure ChangeOwner(st:TSymtable);
procedure ChangeOwnerAndName(st:TSymtable;const aname:tsymstr);
procedure IncRefCount;
procedure IncRefCountBy(AValue : longint);
procedure MaybeCreateRefList;
@ -687,6 +688,15 @@ implementation
end;
procedure tsym.ChangeOwnerAndName(st:TSymtable;const aname:tsymstr);
begin
if assigned(owner) and owner.SymList.OwnsObjects then
owner.symlist.extract(self);
Owner:=st;
inherited ChangeOwnerAndName(Owner.SymList,aname);
end;
{****************************************************************************
tpropaccesslist
****************************************************************************}