Title: [294124] trunk/Source/WebCore
Revision
294124
Author
sihui_...@apple.com
Date
2022-05-12 14:57:09 -0700 (Thu, 12 May 2022)

Log Message

StorageMap::removeItem may fail to remove item from map
https://bugs.webkit.org/show_bug.cgi?id=239982
rdar://80891555

* storage/StorageMap.cpp:
(WebCore::StorageMap::removeItem):
Address post-landing review comment from Darin.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (294123 => 294124)


--- trunk/Source/WebCore/ChangeLog	2022-05-12 21:56:45 UTC (rev 294123)
+++ trunk/Source/WebCore/ChangeLog	2022-05-12 21:57:09 UTC (rev 294124)
@@ -1,3 +1,13 @@
+2022-05-12  Sihui Liu  <sihui_...@apple.com>
+
+        StorageMap::removeItem may fail to remove item from map
+        https://bugs.webkit.org/show_bug.cgi?id=239982
+        rdar://80891555
+
+        * storage/StorageMap.cpp:
+        (WebCore::StorageMap::removeItem): 
+        Address post-landing review comment from Darin.
+
 2022-05-12  J Pascoe  <j_pas...@apple.com>
 
         [WebAuthn] Include backup state in authenticatorData

Modified: trunk/Source/WebCore/storage/StorageMap.cpp (294123 => 294124)


--- trunk/Source/WebCore/storage/StorageMap.cpp	2022-05-12 21:56:45 UTC (rev 294123)
+++ trunk/Source/WebCore/storage/StorageMap.cpp	2022-05-12 21:57:09 UTC (rev 294124)
@@ -134,11 +134,14 @@
     oldValue = iter->value;
     newSize = newSize - iter->key.sizeInBytes() - oldValue.sizeInBytes();
 
-    // Implement copy-on-write semantics.
-    if (m_impl->refCount() > 1)
+    if (m_impl->hasOneRef())
+        m_impl->map.remove(iter);
+    else {
+        // Implement copy-on-write semantics.
         m_impl = m_impl->copy();
+        m_impl->map.remove(key);
+    }
 
-    m_impl->map.remove(key);
     m_impl->currentSize = newSize;
     invalidateIterator();
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to