Changeset 260706 in webkit


Ignore:
Timestamp:
Apr 25, 2020 10:03:33 AM (4 years ago)
Author:
Chris Fleizach
Message:

AX: Improve tracking of Element* pointers in AXObjectCache with WeakHashSet
https://bugs.webkit.org/show_bug.cgi?id=210879

Reviewed by Daniel Bates.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::handleFocusedUIElementChanged):
(WebCore::filterListForRemoval):
(WebCore::AXObjectCache::performDeferredCacheUpdate):

  • accessibility/AXObjectCache.h:
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r260705 r260706  
     12020-04-25  Chris Fleizach  <cfleizach@apple.com>
     2
     3        AX: Improve tracking of Element* pointers in AXObjectCache with WeakHashSet
     4        https://bugs.webkit.org/show_bug.cgi?id=210879
     5
     6        Reviewed by Daniel Bates.
     7
     8        * accessibility/AXObjectCache.cpp:
     9        (WebCore::AXObjectCache::remove):
     10        (WebCore::AXObjectCache::handleFocusedUIElementChanged):
     11        (WebCore::filterListForRemoval):
     12        (WebCore::AXObjectCache::performDeferredCacheUpdate):
     13        * accessibility/AXObjectCache.h:
     14
    1152020-04-25  Antoine Quint  <graouts@apple.com>
    216
  • trunk/Source/WebCore/accessibility/AXObjectCache.cpp

    r259930 r260706  
    860860{
    861861    if (is<Element>(node)) {
    862         m_deferredRecomputeIsIgnoredList.remove(downcast<Element>(&node));
    863         m_deferredSelectedChildredChangedList.remove(downcast<Element>(&node));
    864862        m_deferredTextFormControlValue.remove(downcast<Element>(&node));
    865863        m_deferredAttributeChange.remove(downcast<Element>(&node));
     
    29982996    filterListForRemoval(m_textMarkerNodes, document, nodesToRemove);
    29992997    filterListForRemoval(m_modalNodesSet, document, nodesToRemove);
    3000     filterListForRemoval(m_deferredRecomputeIsIgnoredList, document, nodesToRemove);
    30012998    filterListForRemoval(m_deferredTextChangedList, document, nodesToRemove);
    3002     filterListForRemoval(m_deferredSelectedChildredChangedList, document, nodesToRemove);
    30032999    filterListForRemoval(m_deferredChildrenChangedNodeList, document, nodesToRemove);
    30043000    filterMapForRemoval(m_deferredTextFormControlValue, document, nodesToRemove);
     
    30493045    m_deferredTextChangedList.clear();
    30503046
    3051     for (auto* element : m_deferredRecomputeIsIgnoredList) {
    3052         if (auto* renderer = element->renderer())
     3047    for (auto& element : m_deferredRecomputeIsIgnoredList) {
     3048        if (auto* renderer = element.renderer())
    30533049            recomputeIsIgnored(renderer);
    30543050    }
    30553051    m_deferredRecomputeIsIgnoredList.clear();
    30563052   
    3057     for (auto* selectElement : m_deferredSelectedChildredChangedList)
    3058         selectedChildrenChanged(selectElement);
     3053    for (auto& selectElement : m_deferredSelectedChildredChangedList)
     3054        selectedChildrenChanged(&selectElement);
    30593055    m_deferredSelectedChildredChangedList.clear();
    30603056
  • trunk/Source/WebCore/accessibility/AXObjectCache.h

    r259633 r260706  
    488488
    489489    AXTextStateChangeIntent m_textSelectionIntent;
    490     ListHashSet<Element*> m_deferredRecomputeIsIgnoredList;
     490    WeakHashSet<Element> m_deferredRecomputeIsIgnoredList;
    491491    ListHashSet<Node*> m_deferredTextChangedList;
    492     ListHashSet<Element*> m_deferredSelectedChildredChangedList;
     492    WeakHashSet<Element> m_deferredSelectedChildredChangedList;
    493493    ListHashSet<RefPtr<AXCoreObject>> m_deferredChildrenChangedList;
    494494    ListHashSet<Node*> m_deferredChildrenChangedNodeList;
Note: See TracChangeset for help on using the changeset viewer.