Ignore:
Timestamp:
Apr 27, 2012, 9:26:01 PM (13 years ago)
Author:
[email protected]
Message:

Stop using aligned allocation for WeakBlock
https://bugs.webkit.org/show_bug.cgi?id=85124

Reviewed by Anders Carlsson.

We don't actually use the alignment for anything.

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::create):
(JSC::WeakBlock::WeakBlock): Switched from aligned allocation to regular
allocation.

  • heap/WeakBlock.h:

(WeakBlock): Don't use HeapBlock because HeapBlock requires aligned
allocation. This change required me to add some declarations that we used
to inherit from HeapBlock.

(WeakBlock::blockFor): Removed. This function relied on aligned allocation
but didn't do anything for us.

(WeakBlock::deallocate): Removed. WeakBlock doesn't own any of the deallocation
logic, so it shouldn't own the function.

  • heap/WeakSet.cpp:

(JSC::WeakSet::~WeakSet):
(JSC::WeakSet::finalizeAll):
(JSC::WeakSet::visitLiveWeakImpls):
(JSC::WeakSet::visitDeadWeakImpls):
(JSC::WeakSet::sweep):
(JSC::WeakSet::shrink):
(JSC::WeakSet::resetAllocator):
(JSC::WeakSet::tryFindAllocator):

  • heap/WeakSet.h:

(WeakSet): Updated declarations to reflect WeakBlock not inheriting from
HeapBlock. This allowed me to remove some casts, which was nice.

(JSC::WeakSet::deallocate): Directly set the deallocated flag instead of
asking WeakBlock to do it for us. We don't need to have a WeakBlock
pointer to set the flag, so stop asking for one.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/heap/WeakSet.cpp

    r115391 r115538  
    3434{
    3535    WeakBlock* next = 0;
    36     for (WeakBlock* block = static_cast<WeakBlock*>(m_blocks.head()); block; block = next) {
    37         next = static_cast<WeakBlock*>(block->next());
     36    for (WeakBlock* block = m_blocks.head(); block; block = next) {
     37        next = block->next();
    3838        WeakBlock::destroy(block);
    3939    }
     
    4343void WeakSet::finalizeAll()
    4444{
    45     for (WeakBlock* block = static_cast<WeakBlock*>(m_blocks.head()); block; block = static_cast<WeakBlock*>(block->next()))
     45    for (WeakBlock* block = m_blocks.head(); block; block = block->next())
    4646        block->finalizeAll();
    4747}
     
    4949void WeakSet::visitLiveWeakImpls(HeapRootVisitor& visitor)
    5050{
    51     for (WeakBlock* block = static_cast<WeakBlock*>(m_blocks.head()); block; block = static_cast<WeakBlock*>(block->next()))
     51    for (WeakBlock* block = m_blocks.head(); block; block = block->next())
    5252        block->visitLiveWeakImpls(visitor);
    5353}
     
    5555void WeakSet::visitDeadWeakImpls(HeapRootVisitor& visitor)
    5656{
    57     for (WeakBlock* block = static_cast<WeakBlock*>(m_blocks.head()); block; block = static_cast<WeakBlock*>(block->next()))
     57    for (WeakBlock* block = m_blocks.head(); block; block = block->next())
    5858        block->visitDeadWeakImpls(visitor);
    5959}
     
    6262{
    6363    WeakBlock* next;
    64     for (WeakBlock* block = static_cast<WeakBlock*>(m_blocks.head()); block; block = next) {
    65         next = static_cast<WeakBlock*>(block->next());
     64    for (WeakBlock* block = m_blocks.head(); block; block = next) {
     65        next = block->next();
    6666
    6767        // If a block is completely empty, a new sweep won't have any effect.
     
    7777{
    7878    WeakBlock* next;
    79     for (WeakBlock* block = static_cast<WeakBlock*>(m_blocks.head()); block; block = next) {
    80         next = static_cast<WeakBlock*>(block->next());
     79    for (WeakBlock* block = m_blocks.head(); block; block = next) {
     80        next = block->next();
    8181
    8282        if (!block->sweepResult().isNull() && block->sweepResult().blockIsFree)
     
    8888{
    8989    m_allocator = 0;
    90     m_nextAllocator = static_cast<WeakBlock*>(m_blocks.head());
     90    m_nextAllocator = m_blocks.head();
    9191}
    9292
     
    103103    while (m_nextAllocator) {
    104104        WeakBlock* block = m_nextAllocator;
    105         m_nextAllocator = static_cast<WeakBlock*>(m_nextAllocator->next());
     105        m_nextAllocator = m_nextAllocator->next();
    106106
    107107        block->sweep();
Note: See TracChangeset for help on using the changeset viewer.