| Index: third_party/tcmalloc/chromium/src/common.h
|
| diff --git a/third_party/tcmalloc/chromium/src/common.h b/third_party/tcmalloc/chromium/src/common.h
|
| index a3df8de02fd0056b750e096d0d74eb5477cde6bb..78cdc036ceb27bf3538d6c3411810f9a27757ce9 100644
|
| --- a/third_party/tcmalloc/chromium/src/common.h
|
| +++ b/third_party/tcmalloc/chromium/src/common.h
|
| @@ -31,7 +31,6 @@
|
| // Author: Sanjay Ghemawat <opensource@google.com>
|
| //
|
| // Common definitions for tcmalloc code.
|
| -
|
| #ifndef TCMALLOC_COMMON_H_
|
| #define TCMALLOC_COMMON_H_
|
|
|
| @@ -40,6 +39,7 @@
|
| #ifdef HAVE_STDINT_H
|
| #include <stdint.h> // for uintptr_t, uint64_t
|
| #endif
|
| +#include "free_list.h" // for SIZE_CLASS macros
|
| #include "internal_logging.h" // for ASSERT, etc
|
|
|
| // Type that can hold a page number
|
| @@ -61,19 +61,30 @@ typedef uintptr_t Length;
|
| // central lists. Also, larger pages are less likely to get freed.
|
| // These two factors cause a bounded increase in memory use.
|
|
|
| +static const size_t kAlignment = 8;
|
| +
|
| +// Constants dependant on tcmalloc configuration and archetecture.
|
| +// We need to guarantee the smallest class size is big enough to hold the
|
| +// pointers that form the free list.
|
| +static const size_t kNumFreeListPointers =
|
| + (tcmalloc::kSupportsDoublyLinkedList ? 2 : 1);
|
| +static const size_t kLinkSize = kNumFreeListPointers * sizeof(void *);
|
| +static const size_t kMinClassSize =
|
| + (kLinkSize > kAlignment ? kLinkSize : kAlignment);
|
| +static const size_t kSkippedClasses = (kAlignment < kMinClassSize ? 1 : 0);
|
| +
|
| #if defined(TCMALLOC_LARGE_PAGES)
|
| static const size_t kPageShift = 15;
|
| -static const size_t kNumClasses = 95;
|
| +static const size_t kNumClasses = 95 - kSkippedClasses;
|
| static const size_t kMaxThreadCacheSize = 4 << 20;
|
| #else
|
| static const size_t kPageShift = 12;
|
| -static const size_t kNumClasses = 61;
|
| +static const size_t kNumClasses = 61 - kSkippedClasses;
|
| static const size_t kMaxThreadCacheSize = 2 << 20;
|
| #endif
|
|
|
| static const size_t kPageSize = 1 << kPageShift;
|
| static const size_t kMaxSize = 8u * kPageSize;
|
| -static const size_t kAlignment = 8;
|
| // For all span-lengths < kMaxPages we keep an exact-size list.
|
| static const size_t kMaxPages = 1 << (20 - kPageShift);
|
|
|
|
|