Title: [230317] trunk/Source/bmalloc
Revision
230317
Author
sbar...@apple.com
Date
2018-04-05 18:29:26 -0700 (Thu, 05 Apr 2018)

Log Message

IsoHeapImpl not IsoHeapImplBase should add itself to AllIsoHeaps
https://bugs.webkit.org/show_bug.cgi?id=184174

Reviewed by Filip Pizlo.

Otherwise, another thread may see a non-fully formed IsoHeapImpl.

* bmalloc/IsoHeapImpl.cpp:
(bmalloc::IsoHeapImplBase::IsoHeapImplBase):
(bmalloc::IsoHeapImplBase::addToAllIsoHeaps):
* bmalloc/IsoHeapImpl.h:
* bmalloc/IsoHeapImplInlines.h:
(bmalloc::IsoHeapImpl<Config>::IsoHeapImpl):

Modified Paths

Diff

Modified: trunk/Source/bmalloc/ChangeLog (230316 => 230317)


--- trunk/Source/bmalloc/ChangeLog	2018-04-06 00:45:23 UTC (rev 230316)
+++ trunk/Source/bmalloc/ChangeLog	2018-04-06 01:29:26 UTC (rev 230317)
@@ -1,3 +1,19 @@
+2018-04-05  Saam Barati  <sbar...@apple.com>
+
+        IsoHeapImpl not IsoHeapImplBase should add itself to AllIsoHeaps
+        https://bugs.webkit.org/show_bug.cgi?id=184174
+
+        Reviewed by Filip Pizlo.
+
+        Otherwise, another thread may see a non-fully formed IsoHeapImpl.
+
+        * bmalloc/IsoHeapImpl.cpp:
+        (bmalloc::IsoHeapImplBase::IsoHeapImplBase):
+        (bmalloc::IsoHeapImplBase::addToAllIsoHeaps):
+        * bmalloc/IsoHeapImpl.h:
+        * bmalloc/IsoHeapImplInlines.h:
+        (bmalloc::IsoHeapImpl<Config>::IsoHeapImpl):
+
 2018-04-05  Yusuke Suzuki  <utatane....@gmail.com>
 
         bmalloc StaticMutex's constructor should be constexpr

Modified: trunk/Source/bmalloc/bmalloc/IsoHeapImpl.cpp (230316 => 230317)


--- trunk/Source/bmalloc/bmalloc/IsoHeapImpl.cpp	2018-04-06 00:45:23 UTC (rev 230316)
+++ trunk/Source/bmalloc/bmalloc/IsoHeapImpl.cpp	2018-04-06 01:29:26 UTC (rev 230317)
@@ -33,7 +33,6 @@
 
 IsoHeapImplBase::IsoHeapImplBase()
 {
-    PerProcess<AllIsoHeaps>::get()->add(this);
 }
 
 IsoHeapImplBase::~IsoHeapImplBase()
@@ -40,6 +39,11 @@
 {
 }
 
+void IsoHeapImplBase::addToAllIsoHeaps()
+{
+    PerProcess<AllIsoHeaps>::get()->add(this);
+}
+
 void IsoHeapImplBase::scavengeNow()
 {
     Vector<DeferredDecommit> deferredDecommits;

Modified: trunk/Source/bmalloc/bmalloc/IsoHeapImpl.h (230316 => 230317)


--- trunk/Source/bmalloc/bmalloc/IsoHeapImpl.h	2018-04-06 00:45:23 UTC (rev 230316)
+++ trunk/Source/bmalloc/bmalloc/IsoHeapImpl.h	2018-04-06 01:29:26 UTC (rev 230317)
@@ -48,6 +48,7 @@
     
 protected:
     IsoHeapImplBase();
+    void addToAllIsoHeaps();
 
 private:
     friend class AllIsoHeaps;

Modified: trunk/Source/bmalloc/bmalloc/IsoHeapImplInlines.h (230316 => 230317)


--- trunk/Source/bmalloc/bmalloc/IsoHeapImplInlines.h	2018-04-06 00:45:23 UTC (rev 230316)
+++ trunk/Source/bmalloc/bmalloc/IsoHeapImplInlines.h	2018-04-06 01:29:26 UTC (rev 230317)
@@ -36,6 +36,7 @@
     , m_inlineDirectory(*this)
     , m_allocator(*this)
 {
+    addToAllIsoHeaps();
 }
 
 template<typename Config>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to