https://bugs.webkit.org/show_bug.cgi?id=43269
authorGavin Barraclough <barraclough@apple.com>
Wed, 4 Aug 2010 03:27:13 +0000 (03:27 +0000)
committerSimon Hausmann <simon.hausmann@nokia.com>
Thu, 23 Sep 2010 19:04:15 +0000 (21:04 +0200)
commit8565c8e0acc79517838ddda7ef4fdde353b2432c
tree5b17ef11a791d975a084ea8fdf1c22e66e74990b
parent6839b667368aa0e0ad0de7455bba530e5e4e7841
https://bugs.webkit.org/show_bug.cgi?id=43269

Patch by Nathan Lawrence <nlawrence@apple.com> on 2010-08-03
Reviewed by Gavin Barraclough.

Added new allocateAligned methods to PageAllocation.  In order to
prevent a regress in performance, the function needs to be inlined.

Additionally, I ported the symbian block allocator to use
PageAllocation and added a new WTF::Bitmap class to support this.

* GNUmakefile.am:
* JavaScriptCore.gypi:
* JavaScriptCore.xcodeproj/project.pbxproj:
* runtime/AlignedMemoryAllocator.h: Added.
(JSC::AlignedMemory::deallocate):
(JSC::AlignedMemory::base):
(JSC::AlignedMemory::AlignedMemory):
(JSC::AlignedMemoryAllocator::destroy):
(JSC::AlignedMemoryAllocator::allocate):
(JSC::AlignedMemoryAllocator::AlignedMemoryAllocator):
(JSC::AlignedMemoryAllocator::~AlignedMemoryAllocator):
(JSC::AlignedMemoryAllocator::free):
* runtime/Collector.cpp:
(JSC::Heap::Heap):
(JSC::Heap::destroy):
(JSC::Heap::allocateBlock):
(JSC::Heap::freeBlock):
(JSC::Heap::freeBlocks):
(JSC::Heap::allocate):
(JSC::Heap::shrinkBlocks):
(JSC::Heap::markConservatively):
(JSC::Heap::clearMarkBits):
(JSC::Heap::markedCells):
* runtime/Collector.h:
(JSC::CollectorHeap::collectorBlock):
* runtime/CollectorHeapIterator.h:
(JSC::CollectorHeapIterator::operator*):
(JSC::LiveObjectIterator::operator++):
(JSC::DeadObjectIterator::operator++):
* wtf/Bitmap.h: Added.
(WTF::Bitmap::get):
(WTF::Bitmap::set):
(WTF::Bitmap::clear):
(WTF::Bitmap::clearAll):
(WTF::Bitmap::advanceToNextFreeBit):
(WTF::Bitmap::count):
(WTF::Bitmap::isEmpty):
(WTF::Bitmap::isFull):
* wtf/PageAllocation.h:
(WTF::PageAllocation::operator UnspecifiedBoolType):
(WTF::PageAllocation::allocateAligned):
(WTF::PageAllocation::reserveAligned):
* wtf/Platform.h:
* wtf/symbian: Removed.
* wtf/symbian/BlockAllocatorSymbian.cpp: Removed.
* wtf/symbian/BlockAllocatorSymbian.h: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64624 268f45cc-cd09-0410-ab3c-d52691b4dbfc
14 files changed:
JavaScriptCore/ChangeLog
JavaScriptCore/GNUmakefile.am
JavaScriptCore/JavaScriptCore.gypi
JavaScriptCore/JavaScriptCore.pro
JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
JavaScriptCore/runtime/AlignedMemoryAllocator.h [new file with mode: 0644]
JavaScriptCore/runtime/Collector.cpp
JavaScriptCore/runtime/Collector.h
JavaScriptCore/runtime/CollectorHeapIterator.h
JavaScriptCore/wtf/Bitmap.h [new file with mode: 0644]
JavaScriptCore/wtf/PageAllocation.h
JavaScriptCore/wtf/Platform.h
JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp [deleted file]
JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h [deleted file]