Преглед изворни кода

Fix for the make function from TValue don't change the value from the record prototype.

Henrique Gottardi Werlang пре 9 месеци
родитељ
комит
e7e9f1c359
1 измењених фајлова са 5 додато и 3 уклоњено
  1. 5 3
      packages/rtl/src/rtti.pas

+ 5 - 3
packages/rtl/src/rtti.pas

@@ -858,10 +858,12 @@ begin
   Result.FTypeInfo := ATypeInfo;
 
   if Result.FTypeInfo.Kind = tkRecord then
+  begin
+    Result.FData := TTypeInfoRecord(ATypeInfo).RecordInfo.New;
+
     if Assigned(ABuffer) then
-      Result.FData := TTypeInfoRecord(ATypeInfo).RecordInfo.Assign(ABuffer)
-    else
-      Result.FData := TTypeInfoRecord(ATypeInfo).RecordInfo.New
+      TRecordInfo(Result.FData).Assign(ABuffer);
+  end
   else
     Result.FData := ABuffer;
 end;