1.1 --- a/src/share/vm/services/mallocTracker.cpp Tue Nov 11 10:46:07 2014 -0800 1.2 +++ b/src/share/vm/services/mallocTracker.cpp Tue Nov 11 10:48:06 2014 -0800 1.3 @@ -72,7 +72,7 @@ 1.4 1.5 MallocMemorySummary::record_free(size(), flags()); 1.6 MallocMemorySummary::record_free_malloc_header(sizeof(MallocHeader)); 1.7 - if (tracking_level() == NMT_detail) { 1.8 + if (MemTracker::tracking_level() == NMT_detail) { 1.9 MallocSiteTable::deallocation_at(size(), _bucket_idx, _pos_idx); 1.10 } 1.11 } 1.12 @@ -128,36 +128,18 @@ 1.13 } 1.14 1.15 // Uses placement global new operator to initialize malloc header 1.16 - switch(level) { 1.17 - case NMT_off: 1.18 - return malloc_base; 1.19 - case NMT_minimal: { 1.20 - MallocHeader* hdr = ::new (malloc_base) MallocHeader(); 1.21 - break; 1.22 - } 1.23 - case NMT_summary: { 1.24 - assert(size <= MAX_MALLOC_SIZE, "malloc size overrun for NMT"); 1.25 - header = ::new (malloc_base) MallocHeader(size, flags); 1.26 - break; 1.27 - } 1.28 - case NMT_detail: { 1.29 - assert(size <= MAX_MALLOC_SIZE, "malloc size overrun for NMT"); 1.30 - header = ::new (malloc_base) MallocHeader(size, flags, stack); 1.31 - break; 1.32 - } 1.33 - default: 1.34 - ShouldNotReachHere(); 1.35 + 1.36 + if (level == NMT_off) { 1.37 + return malloc_base; 1.38 } 1.39 + 1.40 + header = ::new (malloc_base)MallocHeader(size, flags, stack, level); 1.41 memblock = (void*)((char*)malloc_base + sizeof(MallocHeader)); 1.42 1.43 // The alignment check: 8 bytes alignment for 32 bit systems. 1.44 // 16 bytes alignment for 64-bit systems. 1.45 assert(((size_t)memblock & (sizeof(size_t) * 2 - 1)) == 0, "Alignment check"); 1.46 1.47 - // Sanity check 1.48 - assert(get_memory_tracking_level(memblock) == level, 1.49 - "Wrong tracking level"); 1.50 - 1.51 #ifdef ASSERT 1.52 if (level > NMT_minimal) { 1.53 // Read back