Title: [254303] trunk/Source/bmalloc
Revision
254303
Author
[email protected]
Date
2020-01-09 14:57:39 -0800 (Thu, 09 Jan 2020)

Log Message

[bmalloc] Extract constants from Heap and share it among Heaps.
https://bugs.webkit.org/show_bug.cgi?id=205834

Reviewed by Geoffrey Garen.

A Heap has many constants (m_vmPageSizePhysical, m_smallLineMetadata and m_pageClasses) and they
are dependent only to vmPageSizePhysical and identical for all Heaps.

Extracting them into a class and make it sharable among heaps. Also this is the first step for
making Heap constants to actual `constexpr`.

* CMakeLists.txt: Added HeapConstants.cpp.
* bmalloc.xcodeproj/project.pbxproj: Ditto.
* bmalloc/Heap.cpp: Referencing HeapConstants object to get information.
(bmalloc::Heap::Heap):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::deallocateSmallLine):
(bmalloc::Heap::allocateSmallBumpRangesByMetadata):
(bmalloc::Heap::allocateSmallBumpRangesByObject):
(bmalloc::Heap::initializeLineMetadata): Moved to HeapConstants.cpp.
(bmalloc::Heap::initializePageMetadata): Moved to HeapConstants.cpp.
* bmalloc/Heap.h: Extract metadata initialization and member variables.
* bmalloc/HeapConstants.cpp: Added.
(bmalloc::HeapConstants::HeapConstants):
(bmalloc::HeapConstants::initializeLineMetadata):
(bmalloc::HeapConstants::initializePageMetadata):
* bmalloc/HeapConstants.h:
(bmalloc::HeapConstants::pageClass const):
(bmalloc::HeapConstants::smallLineCount const):
(bmalloc::HeapConstants::startOffset):
(bmalloc::HeapConstants::objectCount):
(bmalloc::HeapConstants::lineMetadata):

Modified Paths

Added Paths

Diff

Modified: trunk/Source/bmalloc/CMakeLists.txt (254302 => 254303)


--- trunk/Source/bmalloc/CMakeLists.txt	2020-01-09 22:57:24 UTC (rev 254302)
+++ trunk/Source/bmalloc/CMakeLists.txt	2020-01-09 22:57:39 UTC (rev 254303)
@@ -16,6 +16,7 @@
     bmalloc/FreeList.cpp
     bmalloc/Gigacage.cpp
     bmalloc/Heap.cpp
+    bmalloc/HeapConstants.cpp
     bmalloc/HeapKind.cpp
     bmalloc/IsoHeapImpl.cpp
     bmalloc/IsoPage.cpp
@@ -70,6 +71,7 @@
     bmalloc/FreeListInlines.h
     bmalloc/Gigacage.h
     bmalloc/Heap.h
+    bmalloc/HeapConstants.h
     bmalloc/HeapKind.h
     bmalloc/IsoAllocator.h
     bmalloc/IsoAllocatorInlines.h

Modified: trunk/Source/bmalloc/ChangeLog (254302 => 254303)


--- trunk/Source/bmalloc/ChangeLog	2020-01-09 22:57:24 UTC (rev 254302)
+++ trunk/Source/bmalloc/ChangeLog	2020-01-09 22:57:39 UTC (rev 254303)
@@ -1,3 +1,38 @@
+2020-01-09  Basuke Suzuki  <[email protected]>
+
+        [bmalloc] Extract constants from Heap and share it among Heaps.
+        https://bugs.webkit.org/show_bug.cgi?id=205834
+
+        Reviewed by Geoffrey Garen.
+
+        A Heap has many constants (m_vmPageSizePhysical, m_smallLineMetadata and m_pageClasses) and they
+        are dependent only to vmPageSizePhysical and identical for all Heaps.
+
+        Extracting them into a class and make it sharable among heaps. Also this is the first step for
+        making Heap constants to actual `constexpr`.
+
+        * CMakeLists.txt: Added HeapConstants.cpp.
+        * bmalloc.xcodeproj/project.pbxproj: Ditto.
+        * bmalloc/Heap.cpp: Referencing HeapConstants object to get information.
+        (bmalloc::Heap::Heap):
+        (bmalloc::Heap::allocateSmallPage):
+        (bmalloc::Heap::deallocateSmallLine):
+        (bmalloc::Heap::allocateSmallBumpRangesByMetadata):
+        (bmalloc::Heap::allocateSmallBumpRangesByObject):
+        (bmalloc::Heap::initializeLineMetadata): Moved to HeapConstants.cpp.
+        (bmalloc::Heap::initializePageMetadata): Moved to HeapConstants.cpp.
+        * bmalloc/Heap.h: Extract metadata initialization and member variables.
+        * bmalloc/HeapConstants.cpp: Added.
+        (bmalloc::HeapConstants::HeapConstants):
+        (bmalloc::HeapConstants::initializeLineMetadata):
+        (bmalloc::HeapConstants::initializePageMetadata):
+        * bmalloc/HeapConstants.h:
+        (bmalloc::HeapConstants::pageClass const):
+        (bmalloc::HeapConstants::smallLineCount const):
+        (bmalloc::HeapConstants::startOffset):
+        (bmalloc::HeapConstants::objectCount):
+        (bmalloc::HeapConstants::lineMetadata):
+
 2020-01-02  Yusuke Suzuki  <[email protected]> and Simon Fraser  <[email protected]>
 
         Experiment: create lots of different malloc zones for easier accounting of memory use

Modified: trunk/Source/bmalloc/bmalloc/Heap.cpp (254302 => 254303)


--- trunk/Source/bmalloc/bmalloc/Heap.cpp	2020-01-09 22:57:24 UTC (rev 254302)
+++ trunk/Source/bmalloc/bmalloc/Heap.cpp	2020-01-09 22:57:39 UTC (rev 254303)
@@ -30,9 +30,10 @@
 #include "BumpAllocator.h"
 #include "Chunk.h"
 #include "CryptoRandom.h"
+#include "DebugHeap.h"
 #include "Environment.h"
 #include "Gigacage.h"
-#include "DebugHeap.h"
+#include "HeapConstants.h"
 #include "PerProcess.h"
 #include "Scavenger.h"
 #include "SmallLine.h"
@@ -45,15 +46,8 @@
 namespace bmalloc {
 
 Heap::Heap(HeapKind kind, std::lock_guard<Mutex>&)
-    : m_kind(kind)
-    , m_vmPageSizePhysical(vmPageSizePhysical())
+    : m_kind { kind }, m_constants { *HeapConstants::get() }
 {
-    RELEASE_BASSERT(vmPageSizePhysical() >= smallPageSize);
-    RELEASE_BASSERT(vmPageSize() >= vmPageSizePhysical());
-
-    initializeLineMetadata();
-    initializePageMetadata();
-    
     BASSERT(!Environment::get()->isDebugHeapEnabled());
 
     Gigacage::ensureGigacage();
@@ -87,62 +81,6 @@
     return Gigacage::size(gigacageKind(m_kind));
 }
 
-void Heap::initializeLineMetadata()
-{
-    size_t sizeClassCount = bmalloc::sizeClass(smallLineSize);
-    size_t smallLineCount = m_vmPageSizePhysical / smallLineSize;
-    m_smallLineMetadata.grow(sizeClassCount * smallLineCount);
-
-    for (size_t sizeClass = 0; sizeClass < sizeClassCount; ++sizeClass) {
-        size_t size = objectSize(sizeClass);
-        LineMetadata* pageMetadata = &m_smallLineMetadata[sizeClass * smallLineCount];
-
-        size_t object = 0;
-        size_t line = 0;
-        while (object < m_vmPageSizePhysical) {
-            line = object / smallLineSize;
-            size_t leftover = object % smallLineSize;
-
-            size_t objectCount;
-            size_t remainder;
-            divideRoundingUp(smallLineSize - leftover, size, objectCount, remainder);
-
-            pageMetadata[line] = { static_cast<unsigned char>(leftover), static_cast<unsigned char>(objectCount) };
-
-            object += objectCount * size;
-        }
-
-        // Don't allow the last object in a page to escape the page.
-        if (object > m_vmPageSizePhysical) {
-            BASSERT(pageMetadata[line].objectCount);
-            --pageMetadata[line].objectCount;
-        }
-    }
-}
-
-void Heap::initializePageMetadata()
-{
-    auto computePageSize = [&](size_t sizeClass) {
-        size_t size = objectSize(sizeClass);
-        if (sizeClass < bmalloc::sizeClass(smallLineSize))
-            return m_vmPageSizePhysical;
-
-        for (size_t pageSize = m_vmPageSizePhysical;
-            pageSize < pageSizeMax;
-            pageSize += m_vmPageSizePhysical) {
-            RELEASE_BASSERT(pageSize <= chunkSize / 2);
-            size_t waste = pageSize % size;
-            if (waste <= pageSize / pageSizeWasteFactor)
-                return pageSize;
-        }
-        
-        return pageSizeMax;
-    };
-
-    for (size_t i = 0; i < sizeClassCount; ++i)
-        m_pageClasses[i] = (computePageSize(i) - 1) / smallPageSize;
-}
-
 size_t Heap::freeableMemory(std::lock_guard<Mutex>&)
 {
     return m_freeableMemory;
@@ -342,7 +280,7 @@
     m_scavenger->didStartGrowing();
     
     SmallPage* page = [&]() -> SmallPage* {
-        size_t pageClass = m_pageClasses[sizeClass];
+        size_t pageClass = m_constants.pageClass(sizeClass);
         
         if (m_freePages[pageClass].isEmpty())
             allocateSmallChunk(lock, pageClass, action);
@@ -399,8 +337,7 @@
     if (page->refCount(lock))
         return;
 
-    size_t sizeClass = page->sizeClass();
-    size_t pageClass = m_pageClasses[sizeClass];
+    size_t pageClass = m_constants.pageClass(page->sizeClass());
 
     m_freeableMemory += physicalPageSizeSloppy(page->begin()->begin(), pageSize(pageClass));
 
@@ -440,13 +377,11 @@
     }
     SmallLine* lines = page->begin();
     BASSERT(page->hasFreeLines(lock));
-    size_t smallLineCount = m_vmPageSizePhysical / smallLineSize;
-    LineMetadata* pageMetadata = &m_smallLineMetadata[sizeClass * smallLineCount];
-    
+
     auto findSmallBumpRange = [&](size_t& lineNumber) {
-        for ( ; lineNumber < smallLineCount; ++lineNumber) {
+        for ( ; lineNumber < m_constants.smallLineCount(); ++lineNumber) {
             if (!lines[lineNumber].refCount(lock)) {
-                if (pageMetadata[lineNumber].objectCount)
+                if (m_constants.objectCount(sizeClass, lineNumber))
                     return true;
             }
         }
@@ -454,18 +389,19 @@
     };
 
     auto allocateSmallBumpRange = [&](size_t& lineNumber) -> BumpRange {
-        char* begin = lines[lineNumber].begin() + pageMetadata[lineNumber].startOffset;
+        char* begin = lines[lineNumber].begin() + m_constants.startOffset(sizeClass, lineNumber);
         unsigned short objectCount = 0;
         
-        for ( ; lineNumber < smallLineCount; ++lineNumber) {
+        for ( ; lineNumber < m_constants.smallLineCount(); ++lineNumber) {
             if (lines[lineNumber].refCount(lock))
                 break;
 
-            if (!pageMetadata[lineNumber].objectCount)
+            auto lineObjectCount = m_constants.objectCount(sizeClass, lineNumber);
+            if (!lineObjectCount)
                 continue;
 
-            objectCount += pageMetadata[lineNumber].objectCount;
-            lines[lineNumber].ref(lock, pageMetadata[lineNumber].objectCount);
+            objectCount += lineObjectCount;
+            lines[lineNumber].ref(lock, lineObjectCount);
             page->ref(lock);
         }
         return { begin, objectCount };
@@ -533,7 +469,7 @@
     };
 
     Object it(page->begin()->begin());
-    Object end(it + pageSize(m_pageClasses[sizeClass]));
+    Object end(it + pageSize(m_constants.pageClass(page->sizeClass())));
     for (;;) {
         if (!findSmallBumpRange(it, end)) {
             page->setHasFreeLines(lock, false);

Modified: trunk/Source/bmalloc/bmalloc/Heap.h (254302 => 254303)


--- trunk/Source/bmalloc/bmalloc/Heap.h	2020-01-09 22:57:24 UTC (rev 254302)
+++ trunk/Source/bmalloc/bmalloc/Heap.h	2020-01-09 22:57:39 UTC (rev 254303)
@@ -31,7 +31,6 @@
 #include "FailureAction.h"
 #include "HeapKind.h"
 #include "LargeMap.h"
-#include "LineMetadata.h"
 #include "List.h"
 #include "Map.h"
 #include "Mutex.h"
@@ -41,7 +40,6 @@
 #include "PhysicalPageMap.h"
 #include "SmallLine.h"
 #include "SmallPage.h"
-#include "Vector.h"
 #include <array>
 #include <condition_variable>
 #include <mutex>
@@ -54,6 +52,7 @@
 class BumpAllocator;
 class DebugHeap;
 class EndTag;
+class HeapConstants;
 class Scavenger;
 
 class Heap {
@@ -110,9 +109,6 @@
     bool usingGigacage();
     void* gigacageBasePtr(); // May crash if !usingGigacage().
     size_t gigacageSize();
-    
-    void initializeLineMetadata();
-    void initializePageMetadata();
 
     void allocateSmallBumpRangesByMetadata(std::unique_lock<Mutex>&,
         size_t sizeClass, BumpAllocator&, BumpRangeCache&, LineCache&, FailureAction);
@@ -132,14 +128,11 @@
     LargeRange splitAndAllocate(std::unique_lock<Mutex>&, LargeRange&, size_t alignment, size_t);
 
     HeapKind m_kind;
+    HeapConstants& m_constants;
 
     bool m_hasPendingDecommits { false };
     std::condition_variable_any m_condition;
 
-    size_t m_vmPageSizePhysical;
-    Vector<LineMetadata> m_smallLineMetadata;
-    std::array<size_t, sizeClassCount> m_pageClasses;
-
     LineCache m_lineCache;
     std::array<List<Chunk>, pageClassCount> m_freePages;
     std::array<List<Chunk>, pageClassCount> m_chunkCache;

Added: trunk/Source/bmalloc/bmalloc/HeapConstants.cpp (0 => 254303)


--- trunk/Source/bmalloc/bmalloc/HeapConstants.cpp	                        (rev 0)
+++ trunk/Source/bmalloc/bmalloc/HeapConstants.cpp	2020-01-09 22:57:39 UTC (rev 254303)
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2014-2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "HeapConstants.h"
+
+namespace bmalloc {
+
+DEFINE_STATIC_PER_PROCESS_STORAGE(HeapConstants);
+
+HeapConstants::HeapConstants(std::lock_guard<Mutex>&)
+    : m_vmPageSizePhysical { vmPageSizePhysical() }
+{
+    RELEASE_BASSERT(m_vmPageSizePhysical >= smallPageSize);
+    RELEASE_BASSERT(vmPageSize() >= m_vmPageSizePhysical);
+
+    initializeLineMetadata();
+    initializePageMetadata();
+}
+
+void HeapConstants::initializeLineMetadata()
+{
+    size_t sizeClassCount = bmalloc::sizeClass(smallLineSize);
+    m_smallLineMetadata.grow(sizeClassCount * smallLineCount());
+
+    for (size_t sizeClass = 0; sizeClass < sizeClassCount; ++sizeClass) {
+        size_t size = objectSize(sizeClass);
+        LineMetadata* pageMetadata = &m_smallLineMetadata[sizeClass * smallLineCount()];
+
+        size_t object = 0;
+        size_t line = 0;
+        while (object < m_vmPageSizePhysical) {
+            line = object / smallLineSize;
+            size_t leftover = object % smallLineSize;
+
+            size_t objectCount;
+            size_t remainder;
+            divideRoundingUp(smallLineSize - leftover, size, objectCount, remainder);
+
+            pageMetadata[line] = { static_cast<unsigned char>(leftover), static_cast<unsigned char>(objectCount) };
+
+            object += objectCount * size;
+        }
+
+        // Don't allow the last object in a page to escape the page.
+        if (object > m_vmPageSizePhysical) {
+            BASSERT(pageMetadata[line].objectCount);
+            --pageMetadata[line].objectCount;
+        }
+    }
+}
+
+void HeapConstants::initializePageMetadata()
+{
+    auto computePageSize = [&](size_t sizeClass) {
+        size_t size = objectSize(sizeClass);
+        if (sizeClass < bmalloc::sizeClass(smallLineSize))
+            return m_vmPageSizePhysical;
+
+        for (size_t pageSize = m_vmPageSizePhysical; pageSize < pageSizeMax; pageSize += m_vmPageSizePhysical) {
+            RELEASE_BASSERT(pageSize <= chunkSize / 2);
+            size_t waste = pageSize % size;
+            if (waste <= pageSize / pageSizeWasteFactor)
+                return pageSize;
+        }
+
+        return pageSizeMax;
+    };
+
+    for (size_t i = 0; i < sizeClassCount; ++i)
+        m_pageClasses[i] = (computePageSize(i) - 1) / smallPageSize;
+}
+
+} // namespace bmalloc

Copied: trunk/Source/bmalloc/bmalloc/HeapConstants.h (from rev 254301, trunk/Source/bmalloc/bmalloc/LineMetadata.h) (0 => 254303)


--- trunk/Source/bmalloc/bmalloc/HeapConstants.h	                        (rev 0)
+++ trunk/Source/bmalloc/bmalloc/HeapConstants.h	2020-01-09 22:57:39 UTC (rev 254303)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2014-2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "LineMetadata.h"
+#include "Mutex.h"
+#include "Sizes.h"
+#include "StaticPerProcess.h"
+#include "Vector.h"
+#include <array>
+#include <mutex>
+
+namespace bmalloc {
+
+class HeapConstants : public StaticPerProcess<HeapConstants> {
+public:
+    HeapConstants(std::lock_guard<Mutex>&);
+    ~HeapConstants() = delete;
+
+    inline size_t pageClass(size_t sizeClass) const { return m_pageClasses[sizeClass]; }
+    inline size_t smallLineCount() const { return m_vmPageSizePhysical / smallLineSize; }
+    inline unsigned char startOffset(size_t sizeClass, size_t lineNumber) { return lineMetadata(sizeClass, lineNumber).startOffset; }
+    inline unsigned char objectCount(size_t sizeClass, size_t lineNumber) { return lineMetadata(sizeClass, lineNumber).objectCount; }
+
+private:
+    void initializeLineMetadata();
+    void initializePageMetadata();
+
+    inline LineMetadata& lineMetadata(size_t sizeClass, size_t lineNumber)
+    {
+        return m_smallLineMetadata[sizeClass * smallLineCount() + lineNumber];
+    }
+
+    size_t m_vmPageSizePhysical;
+    Vector<LineMetadata> m_smallLineMetadata;
+    std::array<size_t, sizeClassCount> m_pageClasses;
+};
+DECLARE_STATIC_PER_PROCESS_STORAGE(HeapConstants);
+
+} // namespace bmalloc

Modified: trunk/Source/bmalloc/bmalloc/LineMetadata.h (254302 => 254303)


--- trunk/Source/bmalloc/bmalloc/LineMetadata.h	2020-01-09 22:57:24 UTC (rev 254302)
+++ trunk/Source/bmalloc/bmalloc/LineMetadata.h	2020-01-09 22:57:39 UTC (rev 254303)
@@ -23,9 +23,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#ifndef LineMetadata_h
-#define LineMetadata_h
+#pragma once
 
+#include "Sizes.h"
+
 namespace bmalloc {
 
 struct LineMetadata {
@@ -42,5 +43,3 @@
     "maximum object count must fit in LineMetadata::objectCount");
 
 } // namespace bmalloc
-
-#endif // LineMetadata_h

Modified: trunk/Source/bmalloc/bmalloc.xcodeproj/project.pbxproj (254302 => 254303)


--- trunk/Source/bmalloc/bmalloc.xcodeproj/project.pbxproj	2020-01-09 22:57:24 UTC (rev 254302)
+++ trunk/Source/bmalloc/bmalloc.xcodeproj/project.pbxproj	2020-01-09 22:57:39 UTC (rev 254303)
@@ -147,6 +147,8 @@
 		E3FBB5A1225EADB000DB6FBD /* IsoSharedHeap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3FBB59E225EADB000DB6FBD /* IsoSharedHeap.cpp */; };
 		E3FBB5A2225EADB000DB6FBD /* IsoSharedHeap.h in Headers */ = {isa = PBXBuildFile; fileRef = E3FBB59F225EADB000DB6FBD /* IsoSharedHeap.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		E3FBB5A4225ECAD200DB6FBD /* IsoSharedHeapInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = E3FBB5A3225ECAD200DB6FBD /* IsoSharedHeapInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		EB17D11123BFCD42002093A7 /* HeapConstants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EB17D11023BFC8C4002093A7 /* HeapConstants.cpp */; };
+		EB17D11223BFCD7A002093A7 /* HeapConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = EB17D10E23BE691D002093A7 /* HeapConstants.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		FE48BD3B2321E8D700F136D0 /* FailureAction.h in Headers */ = {isa = PBXBuildFile; fileRef = FE48BD3A2321E8CC00F136D0 /* FailureAction.h */; settings = {ATTRIBUTES = (Private, ); }; };
 /* End PBXBuildFile section */
 
@@ -300,6 +302,8 @@
 		E3FBB59E225EADB000DB6FBD /* IsoSharedHeap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IsoSharedHeap.cpp; path = bmalloc/IsoSharedHeap.cpp; sourceTree = "<group>"; };
 		E3FBB59F225EADB000DB6FBD /* IsoSharedHeap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IsoSharedHeap.h; path = bmalloc/IsoSharedHeap.h; sourceTree = "<group>"; };
 		E3FBB5A3225ECAD200DB6FBD /* IsoSharedHeapInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IsoSharedHeapInlines.h; path = bmalloc/IsoSharedHeapInlines.h; sourceTree = "<group>"; };
+		EB17D10E23BE691D002093A7 /* HeapConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HeapConstants.h; path = bmalloc/HeapConstants.h; sourceTree = "<group>"; };
+		EB17D11023BFC8C4002093A7 /* HeapConstants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HeapConstants.cpp; path = bmalloc/HeapConstants.cpp; sourceTree = "<group>"; };
 		FE48BD3A2321E8CC00F136D0 /* FailureAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FailureAction.h; path = bmalloc/FailureAction.h; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
@@ -482,6 +486,8 @@
 				0F5BF14C1F22B0C30029D91D /* Gigacage.h */,
 				14DA320E18875D9F007269E0 /* Heap.cpp */,
 				14DA320C18875B09007269E0 /* Heap.h */,
+				EB17D11023BFC8C4002093A7 /* HeapConstants.cpp */,
+				EB17D10E23BE691D002093A7 /* HeapConstants.h */,
 				140FA00419CE4B6800FFD3C8 /* LineMetadata.h */,
 				144BE11E1CA346520099C8C0 /* Object.h */,
 				14105E8318E14374003A106E /* ObjectType.cpp */,
@@ -600,6 +606,7 @@
 				0F7EB8291F9541B000F1ABCB /* FreeListInlines.h in Headers */,
 				0F5BF14D1F22B0C30029D91D /* Gigacage.h in Headers */,
 				1400274918F89C1300115C97 /* Heap.h in Headers */,
+				EB17D11223BFCD7A002093A7 /* HeapConstants.h in Headers */,
 				0F5BF1471F22A8B10029D91D /* HeapKind.h in Headers */,
 				0F7EB83C1F9541B000F1ABCB /* IsoAllocator.h in Headers */,
 				0F7EB8261F9541B000F1ABCB /* IsoAllocatorInlines.h in Headers */,
@@ -759,6 +766,7 @@
 				0F7EB83E1F9541B000F1ABCB /* FreeList.cpp in Sources */,
 				0F5BF14F1F22DEAF0029D91D /* Gigacage.cpp in Sources */,
 				14F271C718EA3990008C152F /* Heap.cpp in Sources */,
+				EB17D11123BFCD42002093A7 /* HeapConstants.cpp in Sources */,
 				0FD557331F7EDB7B00B1F0A3 /* HeapKind.cpp in Sources */,
 				0F7EB83B1F9541B000F1ABCB /* IsoHeapImpl.cpp in Sources */,
 				0F5549EF1FB54704007FF75A /* IsoPage.cpp in Sources */,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to