From 3ea20ab7d095f08dc821bd31e1540fa50a94852a Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Sun, 15 Mar 2020 19:32:46 +0100 Subject: [PATCH 1/2] Avoid allocating extra delegates when initializing and deinitializing StyleClassActivator. --- .../Styling/Activators/StyleClassActivator.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Styling/Styling/Activators/StyleClassActivator.cs b/src/Avalonia.Styling/Styling/Activators/StyleClassActivator.cs index c884b6ac43..7906a29cb5 100644 --- a/src/Avalonia.Styling/Styling/Activators/StyleClassActivator.cs +++ b/src/Avalonia.Styling/Styling/Activators/StyleClassActivator.cs @@ -14,6 +14,7 @@ namespace Avalonia.Styling.Activators { private readonly IList _match; private readonly IAvaloniaReadOnlyList _classes; + private NotifyCollectionChangedEventHandler? _classesChangedHandler; public StyleClassActivator(IAvaloniaReadOnlyList classes, IList match) { @@ -21,6 +22,9 @@ namespace Avalonia.Styling.Activators _match = match; } + private NotifyCollectionChangedEventHandler ClassesChangedHandler => + _classesChangedHandler ??= ClassesChanged; + public static bool AreClassesMatching(IReadOnlyList classes, IList toMatch) { int remainingMatches = toMatch.Count; @@ -51,16 +55,15 @@ namespace Avalonia.Styling.Activators return remainingMatches == 0; } - protected override void Initialize() { PublishNext(IsMatching()); - _classes.CollectionChanged += ClassesChanged; + _classes.CollectionChanged += ClassesChangedHandler; } protected override void Deinitialize() { - _classes.CollectionChanged -= ClassesChanged; + _classes.CollectionChanged -= ClassesChangedHandler; } private void ClassesChanged(object sender, NotifyCollectionChangedEventArgs e) From 233d6639e39f27aaeea7c933e0bb484aadfdf08c Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 17 Mar 2020 14:39:46 +0100 Subject: [PATCH 2/2] Use more specific .NET core versions. To fix problem with CI failing on OSX. --- azure-pipelines.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6a9f72039a..b70e0bf77f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -35,16 +35,16 @@ jobs: vmImage: 'macOS-10.14' steps: - task: UseDotNet@2 - displayName: 'Use .NET Core SDK 3.1.x' + displayName: 'Use .NET Core SDK 3.1.101' inputs: packageType: sdk - version: 3.1.x + version: 3.1.101 - task: UseDotNet@2 - displayName: 'Use .NET Core Runtime 3.1.x' + displayName: 'Use .NET Core Runtime 3.1.1' inputs: packageType: runtime - version: 3.1.x + version: 3.1.1 - task: CmdLine@2 displayName: 'Install Mono 5.18'