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

* Do not test variants with equal memory area: e.g. strings may point to different memory areas

Michaël Van Canneyt пре 2 година
родитељ
комит
b99a1adf8b
1 измењених фајлова са 4 додато и 5 уклоњено
  1. 4 5
      packages/rtl-objpas/tests/tests.rtti.util.pas

+ 4 - 5
packages/rtl-objpas/tests/tests.rtti.util.pas

@@ -241,15 +241,14 @@ begin
     {$ifdef fpc}
       tkObject,
     {$endif}
-      tkMethod,
-      tkVariant: begin
+      tkMethod:
+      begin
         if aValue1.DataSize = aValue2.DataSize then
           Result := CompareMem(aValue1.GetReferenceToRawData, aValue2.GetReferenceToRawData, aValue1.DataSize)
         else
           Result := False;
-      end
-      else
-        Result := False;
+      end;
+      tkVariant:  Result:=(aValue1.AsVariant=aValue2.AsVariant);
     end;
   end else
     Result := False;