* cosmetics

This commit is contained in:
florian 2024-12-21 19:48:33 +01:00
parent 493ad0aa73
commit 8023fffd3c

View File

@ -823,7 +823,7 @@ implementation
{ stop when no new defs or syms have been registered while processing
the currently registered ones (defs/syms get added to the module's
deflist/symlist when they are registered) }
until not changed and
until not changed and
(defidmax=current_module.deflist.count) and
(symidmax=current_module.symlist.count);
end;
@ -1612,11 +1612,11 @@ implementation
result:=usefieldalignment=bit_alignment;
end;
function tabstractrecordsymtable.has_double_field(out def1,def2:tdef; out offset:integer): integer;
var
i,cnt: longint;
currentsymlist: TFPHashObjectList;
currentdef: tdef;
sym: tfieldvarsym;
begin
has_double_field := 0;
@ -1629,7 +1629,6 @@ implementation
exit;
if currentsymlist.Count <> 2 then
exit;
currentdef := nil;
if is_normal_fieldvarsym(tsym(currentsymlist[0])) then
begin
sym:=tfieldvarsym(currentsymlist[0]);
@ -1654,6 +1653,7 @@ implementation
has_double_field := cnt;
end;
function tabstractrecordsymtable.has_single_field(out def:tdef): boolean;
var
i: longint;
@ -1672,56 +1672,58 @@ implementation
{ a record/object can contain other things than fields }
currentsymlist:=symlist;
{ recurse in arrays and records }
repeat
sym:=nil;
{ record has one field? }
for i:=0 to currentsymlist.Count-1 do
begin
if is_normal_fieldvarsym(tsym(currentsymlist[i])) then
begin
if result then
begin
result:=false;
exit;
end;
result:=true;
sym:=tfieldvarsym(currentsymlist[i]);
end;
end;
if assigned(sym) then
begin
{ if the field is an array, does it contain one element? }
currentdef:=sym.vardef;
while (currentdef.typ=arraydef) and
not is_special_array(currentdef) do
begin
if tarraydef(currentdef).elecount<>1 then
begin
result:=false;
exit;
end;
currentdef:=tarraydef(currentdef).elementdef;
end;
{ if the array element is again a record, continue descending }
if currentdef.typ=recorddef then
begin
{ the record might be empty, so reset the result until we've
really found something }
result:=false;
currentsymlist:=trecorddef(currentdef).symtable.SymList
end
else
begin
{ otherwise we found the type of the single element }
def:=currentdef;
exit;
end;
end
else
exit
until false;
while true do
begin
sym:=nil;
{ record has one field? }
for i:=0 to currentsymlist.Count-1 do
begin
if is_normal_fieldvarsym(tsym(currentsymlist[i])) then
begin
if result then
begin
result:=false;
exit;
end;
result:=true;
sym:=tfieldvarsym(currentsymlist[i]);
end;
end;
if assigned(sym) then
begin
{ if the field is an array, does it contain one element? }
currentdef:=sym.vardef;
while (currentdef.typ=arraydef) and
not is_special_array(currentdef) do
begin
if tarraydef(currentdef).elecount<>1 then
begin
result:=false;
exit;
end;
currentdef:=tarraydef(currentdef).elementdef;
end;
{ if the array element is again a record, continue descending }
if currentdef.typ=recorddef then
begin
{ the record might be empty, so reset the result until we've
really found something }
result:=false;
currentsymlist:=trecorddef(currentdef).symtable.SymList
end
else
begin
{ otherwise we found the type of the single element }
def:=currentdef;
exit;
end;
end
else
exit
end;
end;
procedure tabstractrecordsymtable.do_get_managementoperator_offset_list(data:tobject;arg:pointer);
var
sym : tsym absolute data;