Chromium Code Reviews| Index: Source/wtf/PartitionAlloc.h |
| diff --git a/Source/wtf/PartitionAlloc.h b/Source/wtf/PartitionAlloc.h |
| index 0153c6c9202b312cf16df8c1aa966b9d88bbaafd..52376a575ee3f828c2390f503a1aea1e471b78ae 100644 |
| --- a/Source/wtf/PartitionAlloc.h |
| +++ b/Source/wtf/PartitionAlloc.h |
| @@ -276,6 +276,8 @@ struct PartitionSuperPageExtentEntry { |
| PartitionSuperPageExtentEntry* next; |
| }; |
|
Chris Evans
2015/04/03 22:14:21
Nit: add comment here: "This callback can be calle
|
| +typedef void (*ReportMemoryUsageFunction)(); |
|
Chris Evans
2015/04/03 22:14:21
Nit: I'm not sure about the name of this callback
|
| + |
| struct WTF_EXPORT PartitionRootBase { |
| size_t totalSizeOfCommittedPages; |
| size_t totalSizeOfSuperPages; |
| @@ -292,6 +294,7 @@ struct WTF_EXPORT PartitionRootBase { |
| PartitionPage* globalEmptyPageRing[kMaxFreeableSpans]; |
| int16_t globalEmptyPageRingIndex; |
| uintptr_t invertedSelf; |
| + ReportMemoryUsageFunction reportMemoryUsageFunction; |
| static int gInitializedLock; |
| static bool gInitialized; |
| @@ -329,9 +332,9 @@ enum PartitionAllocFlags { |
| PartitionAllocReturnNull = 1 << 0, |
| }; |
| -WTF_EXPORT void partitionAllocInit(PartitionRoot*, size_t numBuckets, size_t maxAllocation); |
| +WTF_EXPORT void partitionAllocInit(PartitionRoot*, size_t numBuckets, size_t maxAllocation, ReportMemoryUsageFunction); |
| WTF_EXPORT bool partitionAllocShutdown(PartitionRoot*); |
| -WTF_EXPORT void partitionAllocGenericInit(PartitionRootGeneric*); |
| +WTF_EXPORT void partitionAllocGenericInit(PartitionRootGeneric*, ReportMemoryUsageFunction); |
| WTF_EXPORT bool partitionAllocGenericShutdown(PartitionRootGeneric*); |
| WTF_EXPORT NEVER_INLINE void* partitionAllocSlowPath(PartitionRootBase*, int, size_t, PartitionBucket*); |
| @@ -667,7 +670,10 @@ class SizeSpecificPartitionAllocator { |
| public: |
| static const size_t kMaxAllocation = N - kAllocationGranularity; |
| static const size_t kNumBuckets = N / kAllocationGranularity; |
| - void init() { partitionAllocInit(&m_partitionRoot, kNumBuckets, kMaxAllocation); } |
| + void init(ReportMemoryUsageFunction reportMemoryUsageFunction = nullptr) |
| + { |
| + partitionAllocInit(&m_partitionRoot, kNumBuckets, kMaxAllocation, reportMemoryUsageFunction); |
| + } |
| bool shutdown() { return partitionAllocShutdown(&m_partitionRoot); } |
| ALWAYS_INLINE PartitionRoot* root() { return &m_partitionRoot; } |
| private: |
| @@ -677,7 +683,10 @@ private: |
| class PartitionAllocatorGeneric { |
| public: |
| - void init() { partitionAllocGenericInit(&m_partitionRoot); } |
| + void init(ReportMemoryUsageFunction reportMemoryUsageFunction = nullptr) |
| + { |
| + partitionAllocGenericInit(&m_partitionRoot, reportMemoryUsageFunction); |
| + } |
| bool shutdown() { return partitionAllocGenericShutdown(&m_partitionRoot); } |
| ALWAYS_INLINE PartitionRootGeneric* root() { return &m_partitionRoot; } |
| private: |