mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-30 07:40:27 +02:00
* Simplify GetEnumNameCount (by Lagprogramming). Fixes issue #40411
This commit is contained in:
parent
1a4428536f
commit
6a07a508b8
@ -1212,29 +1212,21 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
function GetEnumNameCount(enum1: PTypeInfo): SizeInt;
|
function GetEnumNameCount(enum1: PTypeInfo): SizeInt;
|
||||||
var
|
var
|
||||||
PS: PShortString;
|
PS: PShortString;
|
||||||
PT: PTypeData;
|
|
||||||
Count: SizeInt;
|
|
||||||
begin
|
begin
|
||||||
PT:=GetTypeData(enum1);
|
|
||||||
if enum1^.Kind=tkBool then
|
if enum1^.Kind=tkBool then
|
||||||
Result:=2
|
Result:=2
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
Count:=0;
|
PS:=@GetTypeData(enum1)^.NameList;
|
||||||
Result:=0;
|
Result:=-1;
|
||||||
|
|
||||||
PS:=@PT^.NameList;
|
|
||||||
While (PByte(PS)^<>0) do
|
While (PByte(PS)^<>0) do
|
||||||
begin
|
begin
|
||||||
PS:=PShortString(pointer(PS)+PByte(PS)^+1);
|
PS:=PShortString(pointer(PS)+PByte(PS)^+1);
|
||||||
Inc(Count);
|
Inc(Result);
|
||||||
end;
|
end;
|
||||||
{ the last string is the unit name }
|
|
||||||
Result := Count - 1;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user