mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-11 07:50:43 +01:00
Added TRttiIndexedProperty, the whole property handling infrastructure has been significantly redesigned
This commit is contained in:
parent
2596af84fa
commit
f7bcabd956
File diff suppressed because it is too large
Load Diff
@ -2066,7 +2066,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
// When passing nil, we just need the count
|
// When passing nil, we just need the count
|
||||||
if Assigned(PropList) then
|
if Assigned(PropList) then
|
||||||
PropList^[Result]:=TD^.Prop[i];
|
PropList^[Result]:=TP;
|
||||||
Inc(Result);
|
Inc(Result);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2082,7 +2082,7 @@ Function GetRecordPropInfosEx(TypeInfo: PTypeInfo; PropList: PPropListEx; Visibi
|
|||||||
|
|
||||||
Var
|
Var
|
||||||
TD : PPropDataEx;
|
TD : PPropDataEx;
|
||||||
TP : PPropListEx;
|
TP : PPropInfoEx;
|
||||||
Offset,I,Count : Longint;
|
Offset,I,Count : Longint;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -2090,17 +2090,17 @@ begin
|
|||||||
// Clear list
|
// Clear list
|
||||||
TD:=PRecordData(GetTypeData(TypeInfo))^.ExRTTITable;
|
TD:=PRecordData(GetTypeData(TypeInfo))^.ExRTTITable;
|
||||||
Count:=TD^.PropCount;
|
Count:=TD^.PropCount;
|
||||||
// Now point TP to first propinfo record.
|
|
||||||
Inc(Pointer(TP),SizeOF(Word));
|
|
||||||
tp:=aligntoptr(tp);
|
|
||||||
For I:=0 to Count-1 do
|
For I:=0 to Count-1 do
|
||||||
if ([]=Visibilities) or (PropList^[Result]^.Visibility in Visibilities) then
|
begin
|
||||||
|
TP:=TD^.Prop[I];
|
||||||
|
if ([]=Visibilities) or (TP^.Visibility in Visibilities) then
|
||||||
begin
|
begin
|
||||||
// When passing nil, we just need the count
|
// When passing nil, we just need the count
|
||||||
if Assigned(PropList) then
|
if Assigned(PropList) then
|
||||||
PropList^[Result]:=TD^.Prop[i];
|
PropList^[Result]:=TP;
|
||||||
Inc(Result);
|
Inc(Result);
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -5148,4 +5148,4 @@ begin
|
|||||||
end;
|
end;
|
||||||
{$ENDIF HAVE_INVOKEHELPER}
|
{$ENDIF HAVE_INVOKEHELPER}
|
||||||
|
|
||||||
end.
|
end.
|
||||||
Loading…
Reference in New Issue
Block a user