comparison src/share/vm/services/memTracker.hpp @ 6979:fb3190e77d3c

8001592: NMT: assertion failed: assert(_amount >= amt) failed: Just check: memBaseline.hpp:180 Summary: Fixed NMT that miscounted arena memory when it is used as value or stack object. Reviewed-by: acorn, coleenp
author zgu
date Fri, 09 Nov 2012 19:24:31 -0500
parents 716c64bda5ba
children f34d701e952e
comparison
equal deleted inserted replaced
6938:8940ddc1036f 6979:fb3190e77d3c
282 record_free(old_addr, flags, thread); 282 record_free(old_addr, flags, thread);
283 record_malloc(new_addr, size, flags, pc, thread); 283 record_malloc(new_addr, size, flags, pc, thread);
284 } 284 }
285 } 285 }
286 286
287 // record arena size 287 // record arena memory size
288 static inline void record_arena_size(address addr, size_t size) { 288 static inline void record_arena_size(address addr, size_t size) {
289 // we add a positive offset to arena address, so we can have arena size record 289 // we add a positive offset to arena address, so we can have arena memory record
290 // sorted after arena record 290 // sorted after arena record
291 if (is_on() && !UseMallocOnly) { 291 if (is_on() && !UseMallocOnly) {
292 assert(addr != NULL, "Sanity check"); 292 assert(addr != NULL, "Sanity check");
293 create_memory_record((addr + sizeof(void*)), MemPointerRecord::arena_size_tag(), size, 293 create_memory_record((addr + sizeof(void*)), MemPointerRecord::arena_size_tag(), size,
294 0, NULL); 294 DEBUG_CALLER_PC, NULL);
295 } 295 }
296 } 296 }
297 297
298 // record a virtual memory 'reserve' call 298 // record a virtual memory 'reserve' call
299 static inline void record_virtual_memory_reserve(address addr, size_t size, 299 static inline void record_virtual_memory_reserve(address addr, size_t size,