diff options
Diffstat (limited to 'Source/JavaScriptCore/runtime/Heap.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/Heap.h | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/Source/JavaScriptCore/runtime/Heap.h b/Source/JavaScriptCore/runtime/Heap.h index 6591a5b..eb8af70 100644 --- a/Source/JavaScriptCore/runtime/Heap.h +++ b/Source/JavaScriptCore/runtime/Heap.h @@ -22,9 +22,11 @@ #ifndef Heap_h #define Heap_h +#include "HandleHeap.h" #include "MarkStack.h" #include "MarkedSpace.h" #include <wtf/Forward.h> +#include <wtf/HashCountedSet.h> #include <wtf/HashSet.h> namespace JSC { @@ -34,7 +36,6 @@ namespace JSC { class JSCell; class JSGlobalData; class JSValue; - class JSValue; class LiveObjectIterator; class MarkStack; class MarkedArgumentBuffer; @@ -89,8 +90,6 @@ namespace JSC { PassOwnPtr<TypeCountSet> protectedObjectTypeCounts(); PassOwnPtr<TypeCountSet> objectTypeCounts(); - WeakGCHandle* addWeakGCHandle(JSCell*); - void pushTempSortVector(Vector<ValueStringPair>*); void popTempSortVector(Vector<ValueStringPair>*); @@ -100,21 +99,21 @@ namespace JSC { template <typename Functor> void forEach(Functor&); + HandleSlot allocateGlobalHandle() { return m_handleHeap.allocate(); } + private: friend class JSGlobalData; static const size_t minExtraCost = 256; static const size_t maxExtraCost = 1024 * 1024; + void* allocateSlowCase(size_t); void reportExtraMemoryCostSlowCase(size_t); void markRoots(); void markProtectedObjects(MarkStack&); void markTempSortVectors(MarkStack&); - void updateWeakGCHandles(); - WeakGCHandlePool* weakGCHandlePool(size_t index); - enum SweepToggle { DoNotSweep, DoSweep }; void reset(SweepToggle); @@ -124,7 +123,6 @@ namespace JSC { MarkedSpace m_markedSpace; ProtectCountSet m_protectedValues; - Vector<PageAllocationAligned> m_weakGCHandlePools; Vector<Vector<ValueStringPair>* > m_tempSortingVectors; HashSet<GlobalCodeBlock*> m_codeBlocks; @@ -136,6 +134,7 @@ namespace JSC { MachineStackMarker m_machineStackMarker; MarkStack m_markStack; + HandleHeap m_handleHeap; size_t m_extraCost; }; @@ -165,11 +164,6 @@ namespace JSC { if (cost > minExtraCost) reportExtraMemoryCostSlowCase(cost); } - - inline WeakGCHandlePool* Heap::weakGCHandlePool(size_t index) - { - return static_cast<WeakGCHandlePool*>(m_weakGCHandlePools[index].base()); - } template <typename Functor> inline void Heap::forEach(Functor& functor) { |