Title: [260706] trunk/Source/WebCore
- Revision
- 260706
- Author
- [email protected]
- Date
- 2020-04-25 10:03:33 -0700 (Sat, 25 Apr 2020)
Log 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:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (260705 => 260706)
--- trunk/Source/WebCore/ChangeLog 2020-04-25 16:08:46 UTC (rev 260705)
+++ trunk/Source/WebCore/ChangeLog 2020-04-25 17:03:33 UTC (rev 260706)
@@ -1,3 +1,17 @@
+2020-04-25 Chris Fleizach <[email protected]>
+
+ 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:
+
2020-04-25 Antoine Quint <[email protected]>
[Web Animations] KeyframeEffect should ensure its target remains alive
Modified: trunk/Source/WebCore/accessibility/AXObjectCache.cpp (260705 => 260706)
--- trunk/Source/WebCore/accessibility/AXObjectCache.cpp 2020-04-25 16:08:46 UTC (rev 260705)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.cpp 2020-04-25 17:03:33 UTC (rev 260706)
@@ -859,8 +859,6 @@
void AXObjectCache::remove(Node& node)
{
if (is<Element>(node)) {
- m_deferredRecomputeIsIgnoredList.remove(downcast<Element>(&node));
- m_deferredSelectedChildredChangedList.remove(downcast<Element>(&node));
m_deferredTextFormControlValue.remove(downcast<Element>(&node));
m_deferredAttributeChange.remove(downcast<Element>(&node));
}
@@ -2997,9 +2995,7 @@
HashSet<Node*> nodesToRemove;
filterListForRemoval(m_textMarkerNodes, document, nodesToRemove);
filterListForRemoval(m_modalNodesSet, document, nodesToRemove);
- filterListForRemoval(m_deferredRecomputeIsIgnoredList, document, nodesToRemove);
filterListForRemoval(m_deferredTextChangedList, document, nodesToRemove);
- filterListForRemoval(m_deferredSelectedChildredChangedList, document, nodesToRemove);
filterListForRemoval(m_deferredChildrenChangedNodeList, document, nodesToRemove);
filterMapForRemoval(m_deferredTextFormControlValue, document, nodesToRemove);
filterMapForRemoval(m_deferredAttributeChange, document, nodesToRemove);
@@ -3048,14 +3044,14 @@
textChanged(node);
m_deferredTextChangedList.clear();
- for (auto* element : m_deferredRecomputeIsIgnoredList) {
- if (auto* renderer = element->renderer())
+ for (auto& element : m_deferredRecomputeIsIgnoredList) {
+ if (auto* renderer = element.renderer())
recomputeIsIgnored(renderer);
}
m_deferredRecomputeIsIgnoredList.clear();
- for (auto* selectElement : m_deferredSelectedChildredChangedList)
- selectedChildrenChanged(selectElement);
+ for (auto& selectElement : m_deferredSelectedChildredChangedList)
+ selectedChildrenChanged(&selectElement);
m_deferredSelectedChildredChangedList.clear();
for (auto& deferredFormControlContext : m_deferredTextFormControlValue) {
Modified: trunk/Source/WebCore/accessibility/AXObjectCache.h (260705 => 260706)
--- trunk/Source/WebCore/accessibility/AXObjectCache.h 2020-04-25 16:08:46 UTC (rev 260705)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.h 2020-04-25 17:03:33 UTC (rev 260706)
@@ -487,9 +487,9 @@
Timer m_performCacheUpdateTimer;
AXTextStateChangeIntent m_textSelectionIntent;
- ListHashSet<Element*> m_deferredRecomputeIsIgnoredList;
+ WeakHashSet<Element> m_deferredRecomputeIsIgnoredList;
ListHashSet<Node*> m_deferredTextChangedList;
- ListHashSet<Element*> m_deferredSelectedChildredChangedList;
+ WeakHashSet<Element> m_deferredSelectedChildredChangedList;
ListHashSet<RefPtr<AXCoreObject>> m_deferredChildrenChangedList;
ListHashSet<Node*> m_deferredChildrenChangedNodeList;
HashMap<Element*, String> m_deferredTextFormControlValue;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes