Title: [286811] trunk/Source/WebCore
Revision
286811
Author
tyle...@apple.com
Date
2021-12-09 15:20:39 -0800 (Thu, 09 Dec 2021)

Log Message

AX: Improve ASSERT while processing tree appends in AXIsolatedTree::applyPendingChanges
https://bugs.webkit.org/show_bug.cgi?id=234085

Reviewed by Chris Fleizach.

When processing m_pendingAppends in AXIsolatedTree::applyPendingChanges,
we ASSERT to verify the refcount is what we expect:

ASSERT_UNUSED(addResult, addResult.iterator->value->refCount() == 2
    || (addResult.iterator->value.ptr() == m_rootNode.get() && m_rootNode->refCount() == 3));

But this doesn't include the actual refcount in the ASSERT message,
making it harder to debug.

This patch uses ASSERT_WITH_MESSAGE to display the actual refcount.

* accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::applyPendingChanges):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (286810 => 286811)


--- trunk/Source/WebCore/ChangeLog	2021-12-09 23:19:32 UTC (rev 286810)
+++ trunk/Source/WebCore/ChangeLog	2021-12-09 23:20:39 UTC (rev 286811)
@@ -1,3 +1,24 @@
+2021-12-09  Tyler Wilcock  <tyle...@apple.com>
+
+        AX: Improve ASSERT while processing tree appends in AXIsolatedTree::applyPendingChanges
+        https://bugs.webkit.org/show_bug.cgi?id=234085
+
+        Reviewed by Chris Fleizach.
+
+        When processing m_pendingAppends in AXIsolatedTree::applyPendingChanges,
+        we ASSERT to verify the refcount is what we expect:
+
+        ASSERT_UNUSED(addResult, addResult.iterator->value->refCount() == 2
+            || (addResult.iterator->value.ptr() == m_rootNode.get() && m_rootNode->refCount() == 3));
+
+        But this doesn't include the actual refcount in the ASSERT message,
+        making it harder to debug.
+
+        This patch uses ASSERT_WITH_MESSAGE to display the actual refcount.
+
+        * accessibility/isolatedtree/AXIsolatedTree.cpp:
+        (WebCore::AXIsolatedTree::applyPendingChanges):
+
 2021-12-09  Alan Bujtas  <za...@apple.com>
 
         [LFC][IFC] Stop including inline box start/end inline items in the visual reordering unless they are completely empty

Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp (286810 => 286811)


--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp	2021-12-09 23:19:32 UTC (rev 286810)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp	2021-12-09 23:20:39 UTC (rev 286811)
@@ -512,8 +512,10 @@
         // The reference count of the just added IsolatedObject must be 2
         // because it is referenced by m_readerThreadNodeMap and m_pendingAppends.
         // When m_pendingAppends is cleared, the object will be held only by m_readerThreadNodeMap. The exception is the root node whose reference count is 3.
-        ASSERT_UNUSED(addResult, addResult.iterator->value->refCount() == 2
-            || (addResult.iterator->value.ptr() == m_rootNode.get() && m_rootNode->refCount() == 3));
+        ASSERT_WITH_MESSAGE(
+            addResult.iterator->value->refCount() == 2 || (addResult.iterator->value.ptr() == m_rootNode.get() && m_rootNode->refCount() == 3),
+            "unexpected ref count after adding object to m_readerThreadNodeMap: %d", addResult.iterator->value->refCount()
+        );
     }
     m_pendingAppends.clear();
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to