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

This commit is contained in:
Sven/Sarah Barth 2022-12-23 14:56:56 +01:00
parent 30e0df384d
commit 43f4904d74
2 changed files with 1 additions and 16 deletions

View File

@ -2233,20 +2233,6 @@ begin
FOwnerships := AOwnerships;
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(
constref AKey: TKey; ACollectionNotification: TCollectionNotification);
begin

View File

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