Browse Source

Revert commit 663ee7bc2007a22c48f97927afd4086cc8e56490 as it's simply not allowed to set an object instance value twice no matter if it's the same object instance or not.

(cherry picked from commit 43f4904d74d535d7188d6703ea428b612e765753)
Sven/Sarah Barth 2 years ago
parent
commit
8ab5cef8cc

+ 0 - 14
packages/rtl-generics/src/inc/generics.dictionaries.inc

@@ -2233,20 +2233,6 @@ begin
   FOwnerships := AOwnerships;
   FOwnerships := AOwnerships;
 end;
 end;
 
 
-procedure TObjectOpenAddressingLP<OPEN_ADDRESSING_CONSTRAINTS>.SetValue(var AValue: TValue; constref ANewValue: TValue);
-var
-  LOldValue: TValue;
-begin
-  if TObject((@AValue)^) <> TObject((@ANewValue)^) then
-  begin
-    LOldValue := AValue;
-    AValue := ANewValue;
-
-    ValueNotify(LOldValue, cnRemoved);
-    ValueNotify(ANewValue, cnAdded);
-  end;
-end;
-
 procedure TObjectOpenAddressingLP<OPEN_ADDRESSING_CONSTRAINTS>.KeyNotify(
 procedure TObjectOpenAddressingLP<OPEN_ADDRESSING_CONSTRAINTS>.KeyNotify(
   constref AKey: TKey; ACollectionNotification: TCollectionNotification);
   constref AKey: TKey; ACollectionNotification: TCollectionNotification);
 begin
 begin

+ 1 - 2
packages/rtl-generics/src/inc/generics.dictionariesh.inc

@@ -98,7 +98,7 @@ type
     procedure KeyNotify(constref AKey: TKey; ACollectionNotification: TCollectionNotification); virtual;
     procedure KeyNotify(constref AKey: TKey; ACollectionNotification: TCollectionNotification); virtual;
     procedure ValueNotify(constref AValue: TValue; ACollectionNotification: TCollectionNotification); virtual;
     procedure ValueNotify(constref AValue: TValue; ACollectionNotification: TCollectionNotification); virtual;
     procedure PairNotify(constref APair: TDictionaryPair; ACollectionNotification: TCollectionNotification); inline;
     procedure PairNotify(constref APair: TDictionaryPair; ACollectionNotification: TCollectionNotification); inline;
-    procedure SetValue(var AValue: TValue; constref ANewValue: TValue); dynamic;
+    procedure SetValue(var AValue: TValue; constref ANewValue: TValue);
   public
   public
     property OnKeyNotify: TCollectionNotifyEvent<TKey> read FOnKeyNotify write FOnKeyNotify;
     property OnKeyNotify: TCollectionNotifyEvent<TKey> read FOnKeyNotify write FOnKeyNotify;
     property OnValueNotify: TCollectionNotifyEvent<TValue> read FOnValueNotify write FOnValueNotify;
     property OnValueNotify: TCollectionNotifyEvent<TValue> read FOnValueNotify write FOnValueNotify;
@@ -597,7 +597,6 @@ type
   private
   private
     FOwnerships: TDictionaryOwnerships;
     FOwnerships: TDictionaryOwnerships;
   protected
   protected
-    procedure SetValue(var AValue: TValue; constref ANewValue: TValue); override;
     procedure KeyNotify(constref AKey: TKey; ACollectionNotification: TCollectionNotification); override;
     procedure KeyNotify(constref AKey: TKey; ACollectionNotification: TCollectionNotification); override;
     procedure ValueNotify(constref AValue: TValue; ACollectionNotification: TCollectionNotification); override;
     procedure ValueNotify(constref AValue: TValue; ACollectionNotification: TCollectionNotification); override;
   public
   public