diff options
author | Ben Murdoch <benm@google.com> | 2011-05-24 11:24:40 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-06-02 09:53:15 +0100 |
commit | 81bc750723a18f21cd17d1b173cd2a4dda9cea6e (patch) | |
tree | 7a9e5ed86ff429fd347a25153107221543909b19 /Source/JavaScriptCore/runtime/Heap.h | |
parent | 94088a6d336c1dd80a1e734af51e96abcbb689a7 (diff) | |
download | external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.zip external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.gz external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.bz2 |
Merge WebKit at r80534: Intial merge by Git
Change-Id: Ia7a83357124c9e1cdb1debf55d9661ec0bd09a61
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) { |