241 #ifdef _LP64 |
241 #ifdef _LP64 |
242 size_t _size : 64; |
242 size_t _size : 64; |
243 size_t _flags : 8; |
243 size_t _flags : 8; |
244 size_t _pos_idx : 16; |
244 size_t _pos_idx : 16; |
245 size_t _bucket_idx: 40; |
245 size_t _bucket_idx: 40; |
246 #define MAX_MALLOCSITE_TABLE_SIZE ((size_t)1 << 40) |
246 #define MAX_MALLOCSITE_TABLE_SIZE right_n_bits(40) |
247 #define MAX_BUCKET_LENGTH ((size_t)(1 << 16)) |
247 #define MAX_BUCKET_LENGTH right_n_bits(16) |
248 #else |
248 #else |
249 size_t _size : 32; |
249 size_t _size : 32; |
250 size_t _flags : 8; |
250 size_t _flags : 8; |
251 size_t _pos_idx : 8; |
251 size_t _pos_idx : 8; |
252 size_t _bucket_idx: 16; |
252 size_t _bucket_idx: 16; |
253 #define MAX_MALLOCSITE_TABLE_SIZE ((size_t)(1 << 16)) |
253 #define MAX_MALLOCSITE_TABLE_SIZE right_n_bits(16) |
254 #define MAX_BUCKET_LENGTH ((size_t)(1 << 8)) |
254 #define MAX_BUCKET_LENGTH right_n_bits(8) |
255 #endif // _LP64 |
255 #endif // _LP64 |
256 |
256 |
257 public: |
257 public: |
258 MallocHeader(size_t size, MEMFLAGS flags, const NativeCallStack& stack, NMT_TrackingLevel level) { |
258 MallocHeader(size_t size, MEMFLAGS flags, const NativeCallStack& stack, NMT_TrackingLevel level) { |
259 assert(sizeof(MallocHeader) == sizeof(void*) * 2, |
259 assert(sizeof(MallocHeader) == sizeof(void*) * 2, |