Преглед на файлове

Added TRttiIndexedProperty, the whole property handling infrastructure has been significantly redesigned

Lipinast Lekrisov преди 11 месеца
родител
ревизия
f7bcabd956
променени са 2 файла, в които са добавени 623 реда и са изтрити 153 реда
  1. 615 145
      packages/rtl-objpas/src/inc/rtti.pp
  2. 8 8
      rtl/objpas/typinfo.pp

Файловите разлики са ограничени, защото са твърде много
+ 615 - 145
packages/rtl-objpas/src/inc/rtti.pp


+ 8 - 8
rtl/objpas/typinfo.pp

@@ -2066,7 +2066,7 @@ begin
         begin
         // When passing nil, we just need the count
         if Assigned(PropList) then
-          PropList^[Result]:=TD^.Prop[i];
+          PropList^[Result]:=TP;
         Inc(Result);
         end;
       end;
@@ -2082,7 +2082,7 @@ Function GetRecordPropInfosEx(TypeInfo: PTypeInfo; PropList: PPropListEx; Visibi
 
 Var
   TD : PPropDataEx;
-  TP : PPropListEx;
+  TP : PPropInfoEx;
   Offset,I,Count : Longint;
 
 begin
@@ -2090,17 +2090,17 @@ begin
   // Clear list
   TD:=PRecordData(GetTypeData(TypeInfo))^.ExRTTITable;
   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
-    if ([]=Visibilities) or (PropList^[Result]^.Visibility in Visibilities) then
+  begin           
+    TP:=TD^.Prop[I];
+    if ([]=Visibilities) or (TP^.Visibility in Visibilities) then
       begin
       // When passing nil, we just need the count
       if Assigned(PropList) then
-        PropList^[Result]:=TD^.Prop[i];
+        PropList^[Result]:=TP;
       Inc(Result);
       end;
+  end;
 end;
 
 
@@ -5148,4 +5148,4 @@ begin
 end;
 {$ENDIF HAVE_INVOKEHELPER}
 
-end.
+end.

Някои файлове не бяха показани, защото твърде много файлове са промени