Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2832)

Unified Diff: Source/wtf/DefaultAllocator.cpp

Issue 1220253004: Implement a fast buffer allocator for Vector, HashTable and StringBuilder Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/wtf/DefaultAllocator.h ('k') | Source/wtf/HashTable.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/wtf/DefaultAllocator.cpp
diff --git a/Source/wtf/DefaultAllocator.cpp b/Source/wtf/DefaultAllocator.cpp
index e0f53243f0a51fb8f85a8ef010c38208f8135bdb..96c43a16b3b1e81da54ab9386d242e91983bef9c 100644
--- a/Source/wtf/DefaultAllocator.cpp
+++ b/Source/wtf/DefaultAllocator.cpp
@@ -36,19 +36,70 @@
namespace WTF {
-void* DefaultAllocator::allocateBacking(size_t size)
-{
- return Partitions::bufferMalloc(size);
-}
-
-void DefaultAllocator::freeVectorBacking(void* address)
-{
- Partitions::bufferFree(address);
-}
+size_t (*DefaultAllocator::s_quantizedSize)(size_t, size_t) = DefaultAllocator::defaultQuantizedSize;
+void* (*DefaultAllocator::s_allocateVectorBacking)(size_t, void*) = DefaultAllocator::defaultAllocateVectorBacking;
+void* (*DefaultAllocator::s_allocateExpandedVectorBacking)(size_t, void*) = DefaultAllocator::defaultAllocateExpandedVectorBacking;
+void (*DefaultAllocator::s_freeVectorBacking)(void*) = DefaultAllocator::defaultFreeVectorBacking;
+bool (*DefaultAllocator::s_expandVectorBacking)(void*, size_t) = DefaultAllocator::defaultExpandVectorBacking;
+bool (*DefaultAllocator::s_shrinkVectorBacking)(void*, size_t, size_t) = DefaultAllocator::defaultShrinkVectorBacking;
+void* (*DefaultAllocator::s_allocateInlineVectorBacking)(size_t, void*) = DefaultAllocator::defaultAllocateInlineVectorBacking;
+void (*DefaultAllocator::s_freeInlineVectorBacking)(void*) = DefaultAllocator::defaultFreeInlineVectorBacking;
+bool (*DefaultAllocator::s_expandInlineVectorBacking)(void*, size_t) = DefaultAllocator::defaultExpandInlineVectorBacking;
+bool (*DefaultAllocator::s_shrinkInlineVectorBacking)(void*, size_t, size_t) = DefaultAllocator::defaultShrinkInlineVectorBacking;
+void* (*DefaultAllocator::s_allocateHashTableBacking)(size_t, void*) = DefaultAllocator::defaultAllocateHashTableBacking;
+void* (*DefaultAllocator::s_allocateZeroedHashTableBacking)(size_t, void*) = DefaultAllocator::defaultAllocateZeroedHashTableBacking;
+void* (*DefaultAllocator::s_allocateExpandedHashTableBacking)(size_t, void*) = DefaultAllocator::defaultAllocateExpandedHashTableBacking;
+void* (*DefaultAllocator::s_allocateZeroedExpandedHashTableBacking)(size_t, void*) = DefaultAllocator::defaultAllocateZeroedExpandedHashTableBacking;
+void (*DefaultAllocator::s_freeHashTableBacking)(void*) = DefaultAllocator::defaultFreeHashTableBacking;
+bool (*DefaultAllocator::s_expandHashTableBacking)(void*, size_t) = DefaultAllocator::defaultExpandHashTableBacking;
+void* (*DefaultAllocator::s_allocateBufferStringBacking)(size_t, void*) = DefaultAllocator::defaultAllocateBufferStringBacking;
+void (*DefaultAllocator::s_freeBufferStringBacking)(void*) = DefaultAllocator::defaultFreeBufferStringBacking;
+bool (*DefaultAllocator::s_expandBufferStringBacking)(void*, size_t) = DefaultAllocator::defaultExpandBufferStringBacking;
+bool (*DefaultAllocator::s_shrinkBufferStringBacking)(void*, size_t, size_t) = DefaultAllocator::defaultShrinkBufferStringBacking;
-void DefaultAllocator::freeHashTableBacking(void* address)
+void DefaultAllocator::initialize(size_t (*quantizedSize)(size_t, size_t)
+ , void* (*allocateVectorBacking)(size_t, void*)
+ , void* (*allocateExpandedVectorBacking)(size_t, void*)
+ , void (*freeVectorBacking)(void*)
+ , bool (*expandVectorBacking)(void*, size_t)
+ , bool (*shrinkVectorBacking)(void*, size_t, size_t)
+ , void* (*allocateInlineVectorBacking)(size_t, void*)
+ , void (*freeInlineVectorBacking)(void*)
+ , bool (*expandInlineVectorBacking)(void*, size_t)
+ , bool (*shrinkInlineVectorBacking)(void*, size_t, size_t)
+ , void* (*allocateHashTableBacking)(size_t, void*)
+ , void* (*allocateZeroedHashTableBacking)(size_t, void*)
+ , void* (*allocateExpandedHashTableBacking)(size_t, void*)
+ , void* (*allocateZeroedExpandedHashTableBacking)(size_t, void*)
+ , void (*freeHashTableBacking)(void*)
+ , bool (*expandHashTableBacking)(void*, size_t)
+ , void* (*allocateBufferStringBacking)(size_t, void*)
+ , void (*freeBufferStringBacking)(void*)
+ , bool (*expandBufferStringBacking)(void*, size_t)
+ , bool (*shrinkBufferStringBacking)(void*, size_t, size_t))
{
- Partitions::bufferFree(address);
+ s_quantizedSize = quantizedSize;
+ s_allocateVectorBacking = allocateVectorBacking;
+ s_allocateExpandedVectorBacking = allocateExpandedVectorBacking;
+ s_freeVectorBacking = freeVectorBacking;
+ s_expandVectorBacking = expandVectorBacking;
+ s_shrinkVectorBacking = shrinkVectorBacking;
+ s_allocateInlineVectorBacking = allocateInlineVectorBacking;
+ s_freeInlineVectorBacking = freeInlineVectorBacking;
+ s_expandInlineVectorBacking = expandInlineVectorBacking;
+ s_shrinkInlineVectorBacking = shrinkInlineVectorBacking;
+ /*
+ s_allocateHashTableBacking = allocateHashTableBacking;
+ s_allocateZeroedHashTableBacking = allocateZeroedHashTableBacking;
+ s_allocateExpandedHashTableBacking = allocateExpandedHashTableBacking;
+ s_allocateZeroedExpandedHashTableBacking = allocateZeroedExpandedHashTableBacking;
+ s_freeHashTableBacking = freeHashTableBacking;
+ s_expandHashTableBacking = expandHashTableBacking;
+ */
+ s_allocateBufferStringBacking = allocateBufferStringBacking;
+ s_freeBufferStringBacking = freeBufferStringBacking;
+ s_expandBufferStringBacking = expandBufferStringBacking;
+ s_shrinkBufferStringBacking = shrinkBufferStringBacking;
}
} // namespace WTF
« no previous file with comments | « Source/wtf/DefaultAllocator.h ('k') | Source/wtf/HashTable.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698