diff options
author | Steve Block <steveblock@google.com> | 2011-05-25 19:08:45 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-06-08 13:51:31 +0100 |
commit | 2bde8e466a4451c7319e3a072d118917957d6554 (patch) | |
tree | 28f4a1b869a513e565c7760d0e6a06e7cf1fe95a /Source/JavaScriptCore/runtime/MarkedSpace.h | |
parent | 6939c99b71d9372d14a0c74a772108052e8c48c8 (diff) | |
download | external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.zip external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.gz external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.bz2 |
Merge WebKit at r82507: Initial merge by git
Change-Id: I60ce9d780725b58b45e54165733a8ffee23b683e
Diffstat (limited to 'Source/JavaScriptCore/runtime/MarkedSpace.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/MarkedSpace.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/Source/JavaScriptCore/runtime/MarkedSpace.h b/Source/JavaScriptCore/runtime/MarkedSpace.h index 2e88887..29a8cd0 100644 --- a/Source/JavaScriptCore/runtime/MarkedSpace.h +++ b/Source/JavaScriptCore/runtime/MarkedSpace.h @@ -32,8 +32,7 @@ #include <wtf/Noncopyable.h> #include <wtf/Vector.h> -#define ASSERT_CLASS_FITS_IN_CELL(class) COMPILE_ASSERT(sizeof(class) <= MarkedSpace::maxCellSize, class_fits_in_cell) -#define ASSERT_CLASS_FILLS_CELL(class) COMPILE_ASSERT(sizeof(class) == MarkedSpace::maxCellSize, class_fills_cell) +#define ASSERT_CLASS_FITS_IN_CELL(class) COMPILE_ASSERT(sizeof(class) < MarkedSpace::maxCellSize, class_fits_in_cell) namespace JSC { @@ -48,7 +47,7 @@ namespace JSC { WTF_MAKE_NONCOPYABLE(MarkedSpace); public: // Currently public for use in assertions. - static const size_t maxCellSize = 64; + static const size_t maxCellSize = 1024; static Heap* heap(JSCell*); @@ -81,10 +80,15 @@ namespace JSC { template<typename Functor> void forEach(Functor&); private: - // [ 8, 16... 64 ] + // [ 8, 16... 128 ) static const size_t preciseStep = MarkedBlock::atomSize; - static const size_t preciseCutoff = maxCellSize; - static const size_t preciseCount = preciseCutoff / preciseStep; + static const size_t preciseCutoff = 128; + static const size_t preciseCount = preciseCutoff / preciseStep - 1; + + // [ 128, 256... 1024 ) + static const size_t impreciseStep = preciseCutoff; + static const size_t impreciseCutoff = maxCellSize; + static const size_t impreciseCount = impreciseCutoff / impreciseStep - 1; typedef HashSet<MarkedBlock*>::iterator BlockIterator; @@ -106,6 +110,7 @@ namespace JSC { void clearMarks(MarkedBlock*); SizeClass m_preciseSizeClasses[preciseCount]; + SizeClass m_impreciseSizeClasses[impreciseCount]; HashSet<MarkedBlock*> m_blocks; size_t m_waterMark; size_t m_highWaterMark; |