mirror of
https://github.com/oliverbooth/X10D
synced 2024-11-22 23:58:48 +00:00
fix: fix bug introduced by d29663f081
Since value is a ref returned value, mutating it before returning was actually intended behaviour, since the reassignment causes the dictionary value to be mutated too. Also, what game was this ref watching?!
This commit is contained in:
parent
9df0fde96d
commit
34c49a2228
@ -54,16 +54,7 @@ public static class DictionaryExtensions
|
||||
|
||||
#if NET6_0_OR_GREATER
|
||||
ref var value = ref CollectionsMarshal.GetValueRefOrAddDefault(dictionary, key, out bool exists);
|
||||
if (exists)
|
||||
{
|
||||
value = updateValueFactory(key, value!);
|
||||
}
|
||||
else
|
||||
{
|
||||
value = addValue;
|
||||
}
|
||||
|
||||
return value;
|
||||
return value = exists ? updateValueFactory(key, value!) : addValue;
|
||||
#else
|
||||
if (dictionary.TryGetValue(key, out TValue? old))
|
||||
{
|
||||
@ -182,7 +173,7 @@ public static class DictionaryExtensions
|
||||
|
||||
#if NET6_0_OR_GREATER
|
||||
ref TValue? value = ref CollectionsMarshal.GetValueRefOrAddDefault(dictionary, key, out bool exists);
|
||||
return exists ? updateValueFactory(key, value!) : addValueFactory(key);
|
||||
return value = exists ? updateValueFactory(key, value!) : addValueFactory(key);
|
||||
#else
|
||||
if (dictionary.TryGetValue(key, out TValue? old))
|
||||
{
|
||||
@ -319,7 +310,7 @@ public static class DictionaryExtensions
|
||||
|
||||
#if NET6_0_OR_GREATER
|
||||
ref TValue? value = ref CollectionsMarshal.GetValueRefOrAddDefault(dictionary, key, out bool exists);
|
||||
return exists ? updateValueFactory(key, value!, factoryArgument) : addValueFactory(key, factoryArgument);
|
||||
return value = exists ? updateValueFactory(key, value!, factoryArgument) : addValueFactory(key, factoryArgument);
|
||||
#else
|
||||
if (dictionary.TryGetValue(key, out TValue? old))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user