diff options
| author | Pieter Wuille <[email protected]> | 2015-10-29 07:11:24 +0100 |
|---|---|---|
| committer | Pieter Wuille <[email protected]> | 2015-11-13 18:15:20 +0100 |
| commit | 114b5812f6283f2325fc31e186b26c6d76f9551a (patch) | |
| tree | 6c04a7ee882b7d8a291bb9507ddd5cf17e23f704 /src/memusage.h | |
| parent | Merge pull request #6983 (diff) | |
| download | discoin-114b5812f6283f2325fc31e186b26c6d76f9551a.tar.xz discoin-114b5812f6283f2325fc31e186b26c6d76f9551a.zip | |
Prevector type
Diffstat (limited to 'src/memusage.h')
| -rw-r--r-- | src/memusage.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/memusage.h b/src/memusage.h index e96c5bf03..49760e64c 100644 --- a/src/memusage.h +++ b/src/memusage.h @@ -46,7 +46,9 @@ template<typename X> static inline size_t DynamicUsage(const X * const &v) { ret static inline size_t MallocUsage(size_t alloc) { // Measured on libc6 2.19 on Linux. - if (sizeof(void*) == 8) { + if (alloc == 0) { + return 0; + } else if (sizeof(void*) == 8) { return ((alloc + 31) >> 4) << 4; } else if (sizeof(void*) == 4) { return ((alloc + 15) >> 3) << 3; @@ -74,6 +76,12 @@ static inline size_t DynamicUsage(const std::vector<X>& v) return MallocUsage(v.capacity() * sizeof(X)); } +template<unsigned int N, typename X, typename S, typename D> +static inline size_t DynamicUsage(const prevector<N, X, S, D>& v) +{ + return MallocUsage(v.allocated_memory()); +} + template<typename X, typename Y> static inline size_t DynamicUsage(const std::set<X, Y>& s) { |