Title: [210746] trunk/Source/bmalloc
Revision
210746
Author
gga...@apple.com
Date
2017-01-13 15:39:09 -0800 (Fri, 13 Jan 2017)

Log Message

bmalloc: Use a separate zone when using system malloc
https://bugs.webkit.org/show_bug.cgi?id=167014

Reviewed by Filip Pizlo.

Harris asked for this so he could separate Safari and WebKit memory use
when doing memory analysis.

This patch adds an explicit DebugHeap class that contains all our
code for specialized allocation with debugging.

* bmalloc.xcodeproj/project.pbxproj:

* bmalloc/Allocator.cpp:
(bmalloc::Allocator::Allocator):
(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocateImpl):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase):
* bmalloc/Allocator.h: Forward to DebugHeap instead of inlining all the
code. This is required for our new interface, and it is also a nice
simplification that moves some not-very-important code out of the way.

* bmalloc/Deallocator.cpp:
(bmalloc::Deallocator::Deallocator):
(bmalloc::Deallocator::scavenge):
(bmalloc::Deallocator::deallocateSlowCase):
* bmalloc/Deallocator.h: Ditto.

* bmalloc/DebugHeap.cpp: Added.
(bmalloc::DebugHeap::DebugHeap):
(bmalloc::DebugHeap::malloc):
(bmalloc::DebugHeap::memalign):
(bmalloc::DebugHeap::realloc):
(bmalloc::DebugHeap::free):
* bmalloc/DebugHeap.h: Added. New class for overriding normal heap
behavior. Right now, it just adds a malloc zone and then forwards to
system malloc -- but we can add lots more kinds of debug heaps in the
future if we find them useful.

* bmalloc/Environment.cpp:
(bmalloc::Environment::Environment):
(bmalloc::Environment::computeIsDebugHeapEnabled):
(bmalloc::Environment::computeIsBmallocEnabled): Deleted.
* bmalloc/Environment.h:
(bmalloc::Environment::isDebugHeapEnabled):
(bmalloc::Environment::isBmallocEnabled): Deleted. Renamed everything to
reflect our new use of DebugHeap.

* bmalloc/Heap.cpp:
(bmalloc::Heap::Heap):
* bmalloc/Heap.h:
(bmalloc::Heap::debugHeap): Updated to use DebugHeap.
(bmalloc::Heap::environment): Deleted. 

* bmalloc/bmalloc.h:
(bmalloc::api::isEnabled): Updated to use DebugHeap.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/bmalloc/CMakeLists.txt (210745 => 210746)


--- trunk/Source/bmalloc/CMakeLists.txt	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/CMakeLists.txt	2017-01-13 23:39:09 UTC (rev 210746)
@@ -8,6 +8,7 @@
     bmalloc/Allocator.cpp
     bmalloc/Cache.cpp
     bmalloc/Deallocator.cpp
+    bmalloc/DebugHeap.cpp
     bmalloc/Environment.cpp
     bmalloc/Heap.cpp
     bmalloc/LargeMap.cpp

Modified: trunk/Source/bmalloc/ChangeLog (210745 => 210746)


--- trunk/Source/bmalloc/ChangeLog	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/ChangeLog	2017-01-13 23:39:09 UTC (rev 210746)
@@ -1,3 +1,63 @@
+2017-01-13  Geoffrey Garen  <gga...@apple.com>
+
+        bmalloc: Use a separate zone when using system malloc
+        https://bugs.webkit.org/show_bug.cgi?id=167014
+
+        Reviewed by Filip Pizlo.
+
+        Harris asked for this so he could separate Safari and WebKit memory use
+        when doing memory analysis.
+
+        This patch adds an explicit DebugHeap class that contains all our
+        code for specialized allocation with debugging.
+
+        * bmalloc.xcodeproj/project.pbxproj:
+
+        * bmalloc/Allocator.cpp:
+        (bmalloc::Allocator::Allocator):
+        (bmalloc::Allocator::tryAllocate):
+        (bmalloc::Allocator::allocateImpl):
+        (bmalloc::Allocator::reallocate):
+        (bmalloc::Allocator::allocateSlowCase):
+        * bmalloc/Allocator.h: Forward to DebugHeap instead of inlining all the
+        code. This is required for our new interface, and it is also a nice
+        simplification that moves some not-very-important code out of the way.
+
+        * bmalloc/Deallocator.cpp:
+        (bmalloc::Deallocator::Deallocator):
+        (bmalloc::Deallocator::scavenge):
+        (bmalloc::Deallocator::deallocateSlowCase):
+        * bmalloc/Deallocator.h: Ditto.
+
+        * bmalloc/DebugHeap.cpp: Added.
+        (bmalloc::DebugHeap::DebugHeap):
+        (bmalloc::DebugHeap::malloc):
+        (bmalloc::DebugHeap::memalign):
+        (bmalloc::DebugHeap::realloc):
+        (bmalloc::DebugHeap::free):
+        * bmalloc/DebugHeap.h: Added. New class for overriding normal heap
+        behavior. Right now, it just adds a malloc zone and then forwards to
+        system malloc -- but we can add lots more kinds of debug heaps in the
+        future if we find them useful.
+
+        * bmalloc/Environment.cpp:
+        (bmalloc::Environment::Environment):
+        (bmalloc::Environment::computeIsDebugHeapEnabled):
+        (bmalloc::Environment::computeIsBmallocEnabled): Deleted.
+        * bmalloc/Environment.h:
+        (bmalloc::Environment::isDebugHeapEnabled):
+        (bmalloc::Environment::isBmallocEnabled): Deleted. Renamed everything to
+        reflect our new use of DebugHeap.
+
+        * bmalloc/Heap.cpp:
+        (bmalloc::Heap::Heap):
+        * bmalloc/Heap.h:
+        (bmalloc::Heap::debugHeap): Updated to use DebugHeap.
+        (bmalloc::Heap::environment): Deleted. 
+
+        * bmalloc/bmalloc.h:
+        (bmalloc::api::isEnabled): Updated to use DebugHeap.
+
 2016-12-15  Myles C. Maxfield  <mmaxfi...@apple.com>
 
         Sort Xcode project files

Modified: trunk/Source/bmalloc/bmalloc/Allocator.cpp (210745 => 210746)


--- trunk/Source/bmalloc/bmalloc/Allocator.cpp	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/bmalloc/Allocator.cpp	2017-01-13 23:39:09 UTC (rev 210746)
@@ -27,6 +27,7 @@
 #include "BAssert.h"
 #include "Chunk.h"
 #include "Deallocator.h"
+#include "DebugHeap.h"
 #include "Heap.h"
 #include "PerProcess.h"
 #include "Sizes.h"
@@ -38,7 +39,7 @@
 namespace bmalloc {
 
 Allocator::Allocator(Heap* heap, Deallocator& deallocator)
-    : m_isBmallocEnabled(heap->environment().isBmallocEnabled())
+    : m_debugHeap(heap->debugHeap())
     , m_deallocator(deallocator)
 {
     for (size_t sizeClass = 0; sizeClass < sizeClassCount; ++sizeClass)
@@ -52,8 +53,8 @@
 
 void* Allocator::tryAllocate(size_t size)
 {
-    if (!m_isBmallocEnabled)
-        return malloc(size);
+    if (m_debugHeap)
+        return m_debugHeap->malloc(size);
 
     if (size <= smallMax)
         return allocate(size);
@@ -78,15 +79,8 @@
 {
     BASSERT(isPowerOfTwo(alignment));
 
-    if (!m_isBmallocEnabled) {
-        void* result = nullptr;
-        if (posix_memalign(&result, alignment, size)) {
-            if (crashOnFailure)
-                BCRASH();
-            return nullptr;
-        }
-        return result;
-    }
+    if (m_debugHeap)
+        return m_debugHeap->memalign(alignment, size, crashOnFailure);
 
     if (!size)
         size = alignment;
@@ -103,12 +97,8 @@
 
 void* Allocator::reallocate(void* object, size_t newSize)
 {
-    if (!m_isBmallocEnabled) {
-        void* result = realloc(object, newSize);
-        if (!result)
-            BCRASH();
-        return result;
-    }
+    if (m_debugHeap)
+        return m_debugHeap->realloc(object, newSize);
 
     size_t oldSize = 0;
     switch (objectType(object)) {
@@ -193,12 +183,8 @@
 
 void* Allocator::allocateSlowCase(size_t size)
 {
-    if (!m_isBmallocEnabled) {
-        void* result = malloc(size);
-        if (!result)
-            BCRASH();
-        return result;
-    }
+    if (m_debugHeap)
+        return m_debugHeap->malloc(size);
 
     if (size <= maskSizeClassMax) {
         size_t sizeClass = bmalloc::maskSizeClass(size);

Modified: trunk/Source/bmalloc/bmalloc/Allocator.h (210745 => 210746)


--- trunk/Source/bmalloc/bmalloc/Allocator.h	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/bmalloc/Allocator.h	2017-01-13 23:39:09 UTC (rev 210746)
@@ -32,6 +32,7 @@
 namespace bmalloc {
 
 class Deallocator;
+class DebugHeap;
 class Heap;
 
 // Per-cache object allocator.
@@ -64,7 +65,7 @@
     std::array<BumpAllocator, sizeClassCount> m_bumpAllocators;
     std::array<BumpRangeCache, sizeClassCount> m_bumpRangeCaches;
 
-    bool m_isBmallocEnabled;
+    DebugHeap* m_debugHeap;
     Deallocator& m_deallocator;
 };
 

Modified: trunk/Source/bmalloc/bmalloc/Deallocator.cpp (210745 => 210746)


--- trunk/Source/bmalloc/bmalloc/Deallocator.cpp	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/bmalloc/Deallocator.cpp	2017-01-13 23:39:09 UTC (rev 210746)
@@ -26,6 +26,7 @@
 #include "BAssert.h"
 #include "Chunk.h"
 #include "Deallocator.h"
+#include "DebugHeap.h"
 #include "Heap.h"
 #include "Inline.h"
 #include "Object.h"
@@ -39,9 +40,9 @@
 namespace bmalloc {
 
 Deallocator::Deallocator(Heap* heap)
-    : m_isBmallocEnabled(heap->environment().isBmallocEnabled())
+    : m_debugHeap(heap->debugHeap())
 {
-    if (!m_isBmallocEnabled) {
+    if (m_debugHeap) {
         // Fill the object log in order to disable the fast path.
         while (m_objectLog.size() != m_objectLog.capacity())
             m_objectLog.push(nullptr);
@@ -55,8 +56,10 @@
     
 void Deallocator::scavenge()
 {
-    if (m_isBmallocEnabled)
-        processObjectLog();
+    if (m_debugHeap)
+        return;
+
+    processObjectLog();
 }
 
 void Deallocator::processObjectLog(std::lock_guard<StaticMutex>& lock)
@@ -77,10 +80,8 @@
 
 void Deallocator::deallocateSlowCase(void* object)
 {
-    if (!m_isBmallocEnabled) {
-        free(object);
-        return;
-    }
+    if (m_debugHeap)
+        return m_debugHeap->free(object);
 
     if (!object)
         return;

Modified: trunk/Source/bmalloc/bmalloc/Deallocator.h (210745 => 210746)


--- trunk/Source/bmalloc/bmalloc/Deallocator.h	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/bmalloc/Deallocator.h	2017-01-13 23:39:09 UTC (rev 210746)
@@ -31,6 +31,7 @@
 
 namespace bmalloc {
 
+class DebugHeap;
 class Heap;
 class StaticMutex;
 
@@ -52,7 +53,7 @@
     void deallocateSlowCase(void*);
 
     FixedVector<void*, deallocatorLogCapacity> m_objectLog;
-    bool m_isBmallocEnabled;
+    DebugHeap* m_debugHeap;
 };
 
 inline bool Deallocator::deallocateFastCase(void* object)

Added: trunk/Source/bmalloc/bmalloc/DebugHeap.cpp (0 => 210746)


--- trunk/Source/bmalloc/bmalloc/DebugHeap.cpp	                        (rev 0)
+++ trunk/Source/bmalloc/bmalloc/DebugHeap.cpp	2017-01-13 23:39:09 UTC (rev 210746)
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2016 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 "DebugHeap.h"
+#include "BAssert.h"
+#include "BPlatform.h"
+#include <thread>
+
+namespace bmalloc {
+    
+#if BOS(DARWIN)
+
+DebugHeap::DebugHeap(std::lock_guard<StaticMutex>&)
+    : m_zone(malloc_create_zone(0, 0))
+{
+    malloc_set_zone_name(m_zone, "WebKit Using System Malloc");
+}
+
+void* DebugHeap::malloc(size_t size)
+{
+    void* result = malloc_zone_malloc(m_zone, size);
+    if (!result)
+        BCRASH();
+    return result;
+}
+
+void* DebugHeap::memalign(size_t alignment, size_t size, bool crashOnFailure)
+{
+    void* result = malloc_zone_memalign(m_zone, alignment, size);
+    if (!result && crashOnFailure)
+        BCRASH();
+    return result;
+}
+
+void* DebugHeap::realloc(void* object, size_t size)
+{
+    void* result = malloc_zone_realloc(m_zone, object, size);
+    if (!result)
+        BCRASH();
+    return result;
+}
+
+void DebugHeap::free(void* object)
+{
+    malloc_zone_free(m_zone, object);
+}
+
+#else
+
+DebugHeap::DebugHeap(std::lock_guard<StaticMutex>&)
+{
+}
+
+void* DebugHeap::malloc(size_t size)
+{
+    void* result = ::malloc(size);
+    if (!result)
+        BCRASH();
+    return result;
+}
+
+void* DebugHeap::memalign(size_t alignment, size_t size, bool crashOnFailure)
+{
+    void* result;
+    if (posix_memalign(&result, alignment, size)) {
+        if (crashOnFailure)
+            BCRASH();
+        return nullptr;
+    }
+    return result;
+}
+
+void* DebugHeap::realloc(void* object, size_t size)
+{
+    void* result = ::realloc(object, size);
+    if (!result)
+        BCRASH();
+    return result;
+}
+
+void DebugHeap::free(void* object)
+{
+    ::free(object);
+}
+    
+#endif
+
+} // namespace bmalloc

Added: trunk/Source/bmalloc/bmalloc/DebugHeap.h (0 => 210746)


--- trunk/Source/bmalloc/bmalloc/DebugHeap.h	                        (rev 0)
+++ trunk/Source/bmalloc/bmalloc/DebugHeap.h	2017-01-13 23:39:09 UTC (rev 210746)
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2016 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 "StaticMutex.h"
+#include <mutex>
+#if BOS(DARWIN)
+#include <malloc/malloc.h>
+#endif
+
+namespace bmalloc {
+    
+class DebugHeap {
+public:
+    DebugHeap(std::lock_guard<StaticMutex>&);
+    
+    void* malloc(size_t);
+    void* memalign(size_t alignment, size_t, bool crashOnFailure);
+    void* realloc(void*, size_t);
+    void free(void*);
+
+private:
+#if BOS(DARWIN)
+    malloc_zone_t* m_zone;
+#endif
+};
+
+} // namespace bmalloc

Modified: trunk/Source/bmalloc/bmalloc/Environment.cpp (210745 => 210746)


--- trunk/Source/bmalloc/bmalloc/Environment.cpp	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/bmalloc/Environment.cpp	2017-01-13 23:39:09 UTC (rev 210746)
@@ -108,19 +108,19 @@
 }
 
 Environment::Environment()
-    : m_isBmallocEnabled(computeIsBmallocEnabled())
+    : m_isDebugHeapEnabled(computeIsDebugHeapEnabled())
 {
 }
 
-bool Environment::computeIsBmallocEnabled()
+bool Environment::computeIsDebugHeapEnabled()
 {
     if (isMallocEnvironmentVariableSet())
-        return false;
+        return true;
     if (isLibgmallocEnabled())
-        return false;
+        return true;
     if (isSanitizerEnabled())
-        return false;
-    return true;
+        return true;
+    return false;
 }
 
 } // namespace bmalloc

Modified: trunk/Source/bmalloc/bmalloc/Environment.h (210745 => 210746)


--- trunk/Source/bmalloc/bmalloc/Environment.h	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/bmalloc/Environment.h	2017-01-13 23:39:09 UTC (rev 210746)
@@ -32,12 +32,12 @@
 public:
     Environment();
     
-    bool isBmallocEnabled() { return m_isBmallocEnabled; }
+    bool isDebugHeapEnabled() { return m_isDebugHeapEnabled; }
 
 private:
-    bool computeIsBmallocEnabled();
+    bool computeIsDebugHeapEnabled();
 
-    bool m_isBmallocEnabled;
+    bool m_isDebugHeapEnabled;
 };
 
 } // namespace bmalloc

Modified: trunk/Source/bmalloc/bmalloc/Heap.cpp (210745 => 210746)


--- trunk/Source/bmalloc/bmalloc/Heap.cpp	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/bmalloc/Heap.cpp	2017-01-13 23:39:09 UTC (rev 210746)
@@ -26,6 +26,7 @@
 #include "Heap.h"
 #include "BumpAllocator.h"
 #include "Chunk.h"
+#include "DebugHeap.h"
 #include "PerProcess.h"
 #include "SmallLine.h"
 #include "SmallPage.h"
@@ -37,6 +38,7 @@
     : m_vmPageSizePhysical(vmPageSizePhysical())
     , m_isAllocatingPages(false)
     , m_scavenger(*this, &Heap::concurrentScavenge)
+    , m_debugHeap(nullptr)
 {
     RELEASE_BASSERT(vmPageSizePhysical() >= smallPageSize);
     RELEASE_BASSERT(vmPageSize() >= vmPageSizePhysical());
@@ -43,6 +45,9 @@
 
     initializeLineMetadata();
     initializePageMetadata();
+    
+    if (m_environment.isDebugHeapEnabled())
+        m_debugHeap = PerProcess<DebugHeap>::get();
 }
 
 void Heap::initializeLineMetadata()

Modified: trunk/Source/bmalloc/bmalloc/Heap.h (210745 => 210746)


--- trunk/Source/bmalloc/bmalloc/Heap.h	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/bmalloc/Heap.h	2017-01-13 23:39:09 UTC (rev 210746)
@@ -46,6 +46,7 @@
 
 class BeginTag;
 class BumpAllocator;
+class DebugHeap;
 class EndTag;
 
 class Heap {
@@ -52,7 +53,7 @@
 public:
     Heap(std::lock_guard<StaticMutex>&);
     
-    Environment& environment() { return m_environment; }
+    DebugHeap* debugHeap() { return m_debugHeap; }
 
     void allocateSmallBumpRanges(std::lock_guard<StaticMutex>&, size_t sizeClass, BumpAllocator&, BumpRangeCache&);
     void derefSmallLine(std::lock_guard<StaticMutex>&, Object);
@@ -116,6 +117,7 @@
     AsyncTask<Heap, decltype(&Heap::concurrentScavenge)> m_scavenger;
 
     Environment m_environment;
+    DebugHeap* m_debugHeap;
 
     VMHeap m_vmHeap;
 };

Modified: trunk/Source/bmalloc/bmalloc/bmalloc.h (210745 => 210746)


--- trunk/Source/bmalloc/bmalloc/bmalloc.h	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/bmalloc/bmalloc.h	2017-01-13 23:39:09 UTC (rev 210746)
@@ -82,7 +82,7 @@
 inline bool isEnabled()
 {
     std::unique_lock<StaticMutex> lock(PerProcess<Heap>::mutex());
-    return PerProcess<Heap>::getFastCase()->environment().isBmallocEnabled();
+    return !PerProcess<Heap>::getFastCase()->debugHeap();
 }
 
 } // namespace api

Modified: trunk/Source/bmalloc/bmalloc.xcodeproj/project.pbxproj (210745 => 210746)


--- trunk/Source/bmalloc/bmalloc.xcodeproj/project.pbxproj	2017-01-13 23:30:45 UTC (rev 210745)
+++ trunk/Source/bmalloc/bmalloc.xcodeproj/project.pbxproj	2017-01-13 23:39:09 UTC (rev 210746)
@@ -12,6 +12,8 @@
 		140FA00319CE429C00FFD3C8 /* BumpRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 140FA00219CE429C00FFD3C8 /* BumpRange.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		140FA00519CE4B6800FFD3C8 /* LineMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 140FA00419CE4B6800FFD3C8 /* LineMetadata.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		141D9B001C8E51C0000ABBA0 /* List.h in Headers */ = {isa = PBXBuildFile; fileRef = 141D9AFF1C8E51C0000ABBA0 /* List.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		142B44361E2839E7001DA6E9 /* DebugHeap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 142B44341E2839E7001DA6E9 /* DebugHeap.cpp */; };
+		142B44371E2839E7001DA6E9 /* DebugHeap.h in Headers */ = {isa = PBXBuildFile; fileRef = 142B44351E2839E7001DA6E9 /* DebugHeap.h */; };
 		143CB81C19022BC900B16A45 /* StaticMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 143CB81A19022BC900B16A45 /* StaticMutex.cpp */; };
 		143CB81D19022BC900B16A45 /* StaticMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 143CB81B19022BC900B16A45 /* StaticMutex.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		1440AFCB1A95261100837FAA /* Zone.h in Headers */ = {isa = PBXBuildFile; fileRef = 1440AFCA1A95261100837FAA /* Zone.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -81,6 +83,8 @@
 		1417F65218BA88A00076FA3F /* AsyncTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AsyncTask.h; path = bmalloc/AsyncTask.h; sourceTree = "<group>"; };
 		141D9AFF1C8E51C0000ABBA0 /* List.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = List.h; path = bmalloc/List.h; sourceTree = "<group>"; };
 		1421A87718EE462A00B4DD68 /* Algorithm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Algorithm.h; path = bmalloc/Algorithm.h; sourceTree = "<group>"; };
+		142B44341E2839E7001DA6E9 /* DebugHeap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DebugHeap.cpp; path = bmalloc/DebugHeap.cpp; sourceTree = "<group>"; };
+		142B44351E2839E7001DA6E9 /* DebugHeap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DebugHeap.h; path = bmalloc/DebugHeap.h; sourceTree = "<group>"; };
 		143CB81A19022BC900B16A45 /* StaticMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StaticMutex.cpp; path = bmalloc/StaticMutex.cpp; sourceTree = "<group>"; };
 		143CB81B19022BC900B16A45 /* StaticMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StaticMutex.h; path = bmalloc/StaticMutex.h; sourceTree = "<group>"; };
 		143E29ED18CAE90500FE8A0F /* SmallPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SmallPage.h; path = bmalloc/SmallPage.h; sourceTree = "<group>"; };
@@ -229,6 +233,8 @@
 			children = (
 				140FA00219CE429C00FFD3C8 /* BumpRange.h */,
 				147DC6E21CA5B70B00724E8D /* Chunk.h */,
+				142B44341E2839E7001DA6E9 /* DebugHeap.cpp */,
+				142B44351E2839E7001DA6E9 /* DebugHeap.h */,
 				14895D8F1A3A319C0006235D /* Environment.cpp */,
 				14895D901A3A319C0006235D /* Environment.h */,
 				14DA320E18875D9F007269E0 /* Heap.cpp */,
@@ -321,6 +327,7 @@
 				14DD78CA18F48D7500950702 /* Mutex.h in Headers */,
 				144BE11F1CA346520099C8C0 /* Object.h in Headers */,
 				14DD789318F48D0F00950702 /* ObjectType.h in Headers */,
+				142B44371E2839E7001DA6E9 /* DebugHeap.h in Headers */,
 				14DD78CB18F48D7500950702 /* PerProcess.h in Headers */,
 				14DD78CC18F48D7500950702 /* PerThread.h in Headers */,
 				14DD78CD18F48D7500950702 /* Range.h in Headers */,
@@ -422,6 +429,7 @@
 				14F271C718EA3990008C152F /* Heap.cpp in Sources */,
 				144C07F41C7B70260051BB6A /* LargeMap.cpp in Sources */,
 				4426E2801C838EE0008EB042 /* Logging.cpp in Sources */,
+				142B44361E2839E7001DA6E9 /* DebugHeap.cpp in Sources */,
 				14F271C818EA3990008C152F /* ObjectType.cpp in Sources */,
 				143CB81C19022BC900B16A45 /* StaticMutex.cpp in Sources */,
 				14F271C918EA3990008C152F /* VMHeap.cpp in Sources */,
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to