diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Automation/EventPropertyMap.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Automation/EventPropertyMap.cs deleted file mode 100644 index 5ec5524c4c3..00000000000 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Automation/EventPropertyMap.cs +++ /dev/null @@ -1,174 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -// -// -// -// Description: -// Accessibility event map classes are used to determine if, and how many -// listeners there are for events and property changes. -// -// - -using System.Collections; -using System.Windows; - -namespace MS.Internal.Automation -{ - // Manages the property map that is used to determine if there are - // Automation clients interested in properties. - internal class EventPropertyMap - { - //------------------------------------------------------ - // - // Constructors - // - //------------------------------------------------------ - - #region Constructors - - // static class, private ctor to prevent creation - private EventPropertyMap() - { - } - - #endregion Constructors - - //------------------------------------------------------ - // - // Internal Methods - // - //------------------------------------------------------ - - #region Internal Methods - - // Called during queueing of property change events to check if there are any - // listeners that are interested in this property. Returns true if there are - // else false. This function could be called frequently; it must be fast. - internal static bool IsInterestingDP(DependencyProperty dp) - { - using (_propertyLock.ReadLock) - { - if (_propertyTable != null && _propertyTable.ContainsKey(dp)) - { - return true; - } - } - return false; - } - - // Updates the list of DynamicProperties that are currently being listened to. - // Called by AccEvent class when certain events are added. - // - // Returns: true if the event property map was created during this call and - // false if the property map was not created during this call. - internal static bool AddPropertyNotify(DependencyProperty [] properties) - { - if (properties == null) - return false; - - bool createdMap = false; - using (_propertyLock.WriteLock) - { - // If it doesn't exist, create the property map (key=dp value=listener count) - if (_propertyTable == null) - { - // Up to 20 properties before resize and - // small load factor optimizes for speed - _propertyTable = new Hashtable(20, .1f); - createdMap = true; - } - - int cDPStart = _propertyTable.Count; - - // properties is an array of the properties one listener is interested in - foreach (DependencyProperty dp in properties) - { - if (dp == null) - continue; - - int cDP = 0; - - // If the property is in the table, increment it's count - if (_propertyTable.ContainsKey(dp)) - { - cDP = (int)_propertyTable[dp]; - } - - cDP++; - _propertyTable[dp] = cDP; - } - } - - return createdMap; - } - - - // Updates the list of DynamicProperties that are currently being listened to. - // Called by AccEvent class when removing certain events. - // Returns: true if the property table is empty after this operation. - internal static bool RemovePropertyNotify(DependencyProperty [] properties) - { - Debug.Assert(properties != null); - - bool isEmpty = false; - - using (_propertyLock.WriteLock) - { - if (_propertyTable != null) - { - int cDPStart = _propertyTable.Count; - - // properties is an array of the properties one listener is no longer interested in - foreach (DependencyProperty dp in properties) - { - if (_propertyTable.ContainsKey(dp)) - { - int cDP = (int)_propertyTable[dp]; - - // Update or remove the entry based on remaining listeners - cDP--; - if (cDP > 0) - { - _propertyTable[dp] = cDP; - } - else - { - _propertyTable.Remove(dp); - } - } - } - - // If there are no more properties in the map then delete it; the idea is if there - // are no listeners, don't make the property system do extra work. - if (_propertyTable.Count == 0) - { - _propertyTable = null; - } - } - isEmpty = (_propertyTable == null); - } - - return isEmpty; - } - - #endregion Internal Methods - - - //------------------------------------------------------ - // - // Private Fields - // - //------------------------------------------------------ - - #region Private Fields - - // static class, no instance data... - - private static ReaderWriterLockWrapper _propertyLock = new ReaderWriterLockWrapper(); - private static Hashtable _propertyTable; // key=DP, data=listener count - - #endregion Private Fields - } -} diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/PresentationCore.csproj b/src/Microsoft.DotNet.Wpf/src/PresentationCore/PresentationCore.csproj index d30435b6493..5b9fe95541a 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/PresentationCore.csproj +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/PresentationCore.csproj @@ -138,7 +138,6 @@ -