Browse Source

Changes after review

pull/10897/head
Max Katz 3 years ago
parent
commit
eb09e522c1
  1. 8
      src/Avalonia.Base/Controls/ResourceDictionary.cs

8
src/Avalonia.Base/Controls/ResourceDictionary.cs

@ -15,7 +15,7 @@ namespace Avalonia.Controls
/// </summary> /// </summary>
public class ResourceDictionary : IResourceDictionary public class ResourceDictionary : IResourceDictionary
{ {
private DeferredItem? s_lastDeferredItem; private object? lastDeferredItemKey;
private Dictionary<object, object?>? _inner; private Dictionary<object, object?>? _inner;
private IResourceHost? _owner; private IResourceHost? _owner;
private AvaloniaList<IResourceProvider>? _mergedDictionaries; private AvaloniaList<IResourceProvider>? _mergedDictionaries;
@ -243,7 +243,7 @@ namespace Avalonia.Controls
if (value is DeferredItem deffered) if (value is DeferredItem deffered)
{ {
// Avoid simple reentrancy, which could commonly occur on redefining the resource. // Avoid simple reentrancy, which could commonly occur on redefining the resource.
if (s_lastDeferredItem == deffered) if (lastDeferredItemKey == key)
{ {
value = null; value = null;
return false; return false;
@ -251,7 +251,7 @@ namespace Avalonia.Controls
try try
{ {
s_lastDeferredItem = deffered; lastDeferredItemKey = key;
_inner[key] = value = deffered.Factory(null) switch _inner[key] = value = deffered.Factory(null) switch
{ {
ITemplateResult t => t.Result, ITemplateResult t => t.Result,
@ -261,7 +261,7 @@ namespace Avalonia.Controls
} }
finally finally
{ {
s_lastDeferredItem = null; lastDeferredItemKey = null;
} }
} }
return true; return true;

Loading…
Cancel
Save