Ignore:
Timestamp:
Jan 27, 2015, 1:34:32 PM (11 years ago)
Author:
[email protected]
Message:

Unreviewed, rolling out r179192.
https://bugs.webkit.org/show_bug.cgi?id=140953

Caused numerous layout test failures (Requested by mattbaker_
on #webkit).

Reverted changeset:

"Use FastMalloc (bmalloc) instead of BlockAllocator for GC
pages"
https://bugs.webkit.org/show_bug.cgi?id=140900
http://trac.webkit.org/changeset/179192

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/heap/CopiedBlock.h

    r179192 r179211  
    2727#define CopiedBlock_h
    2828
     29#include "BlockAllocator.h"
    2930#include "CopyWorkList.h"
    3031#include "HeapBlock.h"
     
    3233#include "Options.h"
    3334#include <wtf/Atomics.h>
    34 #include <wtf/TCSpinLock.h>
    3535
    3636namespace JSC {
     
    4242    friend class CopiedAllocator;
    4343public:
    44     static CopiedBlock* create(size_t);
    45     static CopiedBlock* createNoZeroFill(size_t);
     44    static CopiedBlock* create(DeadBlock*);
     45    static CopiedBlock* createNoZeroFill(DeadBlock*);
    4646
    4747    void pin();
     
    8787
    8888private:
    89     CopiedBlock(size_t);
     89    CopiedBlock(Region*);
    9090    void zeroFillWilderness(); // Can be called at any time to zero-fill to the end of the block.
    9191
     
    9595    std::unique_ptr<CopyWorkList> m_workList;
    9696
    97     size_t m_blockSize;
    9897    size_t m_remaining;
    9998    bool m_isPinned : 1;
     
    105104};
    106105
    107 inline CopiedBlock* CopiedBlock::createNoZeroFill(size_t blockSize)
    108 {
    109     return new(NotNull, fastAlignedMalloc(CopiedBlock::blockSize, blockSize)) CopiedBlock(blockSize);
    110 }
    111 
    112 inline CopiedBlock* CopiedBlock::create(size_t blockSize)
    113 {
    114     CopiedBlock* newBlock = createNoZeroFill(blockSize);
     106inline CopiedBlock* CopiedBlock::createNoZeroFill(DeadBlock* block)
     107{
     108    Region* region = block->region();
     109    return new(NotNull, block) CopiedBlock(region);
     110}
     111
     112inline CopiedBlock* CopiedBlock::create(DeadBlock* block)
     113{
     114    CopiedBlock* newBlock = createNoZeroFill(block);
    115115    newBlock->zeroFillWilderness();
    116116    return newBlock;
     
    129129}
    130130
    131 inline CopiedBlock::CopiedBlock(size_t blockSize)
    132     : HeapBlock<CopiedBlock>()
    133     , m_blockSize(blockSize)
     131inline CopiedBlock::CopiedBlock(Region* region)
     132    : HeapBlock<CopiedBlock>(region)
    134133    , m_remaining(payloadCapacity())
    135134    , m_isPinned(false)
     
    205204inline bool CopiedBlock::isOversize()
    206205{
    207     return m_blockSize != blockSize;
     206    return region()->isCustomSize();
    208207}
    209208
     
    221220inline char* CopiedBlock::payloadEnd()
    222221{
    223     return reinterpret_cast<char*>(this) + m_blockSize;
     222    return reinterpret_cast<char*>(this) + region()->blockSize();
    224223}
    225224
     
    266265inline size_t CopiedBlock::capacity()
    267266{
    268     return m_blockSize;
     267    return region()->blockSize();
    269268}
    270269
Note: See TracChangeset for help on using the changeset viewer.