mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 01:49:20 +02:00
compiler: don't create a parasymtable for property if property has no parameters
git-svn-id: trunk@19550 -
This commit is contained in:
parent
aaabc35058
commit
62b4ef3d1a
@ -401,6 +401,7 @@ implementation
|
|||||||
not (m_delphi in current_settings.modeswitches) then
|
not (m_delphi in current_settings.modeswitches) then
|
||||||
Message(parser_e_cant_publish_that_property);
|
Message(parser_e_cant_publish_that_property);
|
||||||
{ create a list of the parameters }
|
{ create a list of the parameters }
|
||||||
|
p.parast:=tparasymtable.create(nil,0);
|
||||||
symtablestack.push(p.parast);
|
symtablestack.push(p.parast);
|
||||||
sc:=TFPObjectList.create(false);
|
sc:=TFPObjectList.create(false);
|
||||||
repeat
|
repeat
|
||||||
@ -513,10 +514,9 @@ implementation
|
|||||||
p.index:=tpropertysym(overridden).index;
|
p.index:=tpropertysym(overridden).index;
|
||||||
p.default:=tpropertysym(overridden).default;
|
p.default:=tpropertysym(overridden).default;
|
||||||
p.propoptions:=tpropertysym(overridden).propoptions;
|
p.propoptions:=tpropertysym(overridden).propoptions;
|
||||||
p.parast.free;
|
|
||||||
p.parast:=tpropertysym(overridden).parast.getcopy;
|
|
||||||
if ppo_hasparameters in p.propoptions then
|
if ppo_hasparameters in p.propoptions then
|
||||||
begin
|
begin
|
||||||
|
p.parast:=tpropertysym(overridden).parast.getcopy;
|
||||||
add_parameters(p,readprocdef,writeprocdef);
|
add_parameters(p,readprocdef,writeprocdef);
|
||||||
paranr:=p.parast.SymList.Count;
|
paranr:=p.parast.SymList.Count;
|
||||||
end;
|
end;
|
||||||
|
@ -43,7 +43,7 @@ type
|
|||||||
{$endif Test_Double_checksum}
|
{$endif Test_Double_checksum}
|
||||||
|
|
||||||
const
|
const
|
||||||
CurrentPPUVersion = 138;
|
CurrentPPUVersion = 139;
|
||||||
|
|
||||||
{ buffer sizes }
|
{ buffer sizes }
|
||||||
maxentrysize = 1024;
|
maxentrysize = 1024;
|
||||||
|
@ -957,7 +957,7 @@ implementation
|
|||||||
default:=0;
|
default:=0;
|
||||||
propdef:=nil;
|
propdef:=nil;
|
||||||
indexdef:=nil;
|
indexdef:=nil;
|
||||||
parast:=tparasymtable.create(nil,0);
|
parast:=nil;
|
||||||
for pap:=low(tpropaccesslisttypes) to high(tpropaccesslisttypes) do
|
for pap:=low(tpropaccesslisttypes) to high(tpropaccesslisttypes) do
|
||||||
propaccesslist[pap]:=tpropaccesslist.create;
|
propaccesslist[pap]:=tpropaccesslist.create;
|
||||||
end;
|
end;
|
||||||
@ -976,8 +976,11 @@ implementation
|
|||||||
ppufile.getderef(indexdefderef);
|
ppufile.getderef(indexdefderef);
|
||||||
for pap:=low(tpropaccesslisttypes) to high(tpropaccesslisttypes) do
|
for pap:=low(tpropaccesslisttypes) to high(tpropaccesslisttypes) do
|
||||||
propaccesslist[pap]:=ppufile.getpropaccesslist;
|
propaccesslist[pap]:=ppufile.getpropaccesslist;
|
||||||
parast:=tparasymtable.create(nil,0);
|
if ppo_hasparameters in propoptions then
|
||||||
tparasymtable(parast).ppuload(ppufile);
|
begin
|
||||||
|
parast:=tparasymtable.create(nil,0);
|
||||||
|
tparasymtable(parast).ppuload(ppufile);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1001,7 +1004,8 @@ implementation
|
|||||||
indexdefderef.build(indexdef);
|
indexdefderef.build(indexdef);
|
||||||
for pap:=low(tpropaccesslisttypes) to high(tpropaccesslisttypes) do
|
for pap:=low(tpropaccesslisttypes) to high(tpropaccesslisttypes) do
|
||||||
propaccesslist[pap].buildderef;
|
propaccesslist[pap].buildderef;
|
||||||
tparasymtable(parast).buildderef;
|
if assigned(parast) then
|
||||||
|
tparasymtable(parast).buildderef;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1014,7 +1018,8 @@ implementation
|
|||||||
propdef:=tdef(propdefderef.resolve);
|
propdef:=tdef(propdefderef.resolve);
|
||||||
for pap:=low(tpropaccesslisttypes) to high(tpropaccesslisttypes) do
|
for pap:=low(tpropaccesslisttypes) to high(tpropaccesslisttypes) do
|
||||||
propaccesslist[pap].resolve;
|
propaccesslist[pap].resolve;
|
||||||
tparasymtable(parast).deref;
|
if assigned(parast) then
|
||||||
|
tparasymtable(parast).deref;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1038,7 +1043,8 @@ implementation
|
|||||||
for pap:=low(tpropaccesslisttypes) to high(tpropaccesslisttypes) do
|
for pap:=low(tpropaccesslisttypes) to high(tpropaccesslisttypes) do
|
||||||
ppufile.putpropaccesslist(propaccesslist[pap]);
|
ppufile.putpropaccesslist(propaccesslist[pap]);
|
||||||
ppufile.writeentry(ibpropertysym);
|
ppufile.writeentry(ibpropertysym);
|
||||||
tparasymtable(parast).ppuwrite(ppufile);
|
if ppo_hasparameters in propoptions then
|
||||||
|
tparasymtable(parast).ppuwrite(ppufile);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user