summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/runtime/Heap.h
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-05-24 11:24:40 +0100
committerBen Murdoch <benm@google.com>2011-06-02 09:53:15 +0100
commit81bc750723a18f21cd17d1b173cd2a4dda9cea6e (patch)
tree7a9e5ed86ff429fd347a25153107221543909b19 /Source/JavaScriptCore/runtime/Heap.h
parent94088a6d336c1dd80a1e734af51e96abcbb689a7 (diff)
downloadexternal_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.h18
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)
{