equal
deleted
inserted
replaced
753 |
753 |
754 #ifndef ASSERT |
754 #ifndef ASSERT |
755 NOT_PRODUCT(inc_stat_counter(&num_mallocs, 1)); |
755 NOT_PRODUCT(inc_stat_counter(&num_mallocs, 1)); |
756 NOT_PRODUCT(inc_stat_counter(&alloc_bytes, size)); |
756 NOT_PRODUCT(inc_stat_counter(&alloc_bytes, size)); |
757 // NMT support |
757 // NMT support |
758 void* membase = MemTracker::record_free(memblock); |
|
759 NMT_TrackingLevel level = MemTracker::tracking_level(); |
758 NMT_TrackingLevel level = MemTracker::tracking_level(); |
|
759 void* membase = MemTracker::record_free(memblock, level); |
760 size_t nmt_header_size = MemTracker::malloc_header_size(level); |
760 size_t nmt_header_size = MemTracker::malloc_header_size(level); |
761 void* ptr = ::realloc(membase, size + nmt_header_size); |
761 void* ptr = ::realloc(membase, size + nmt_header_size); |
762 return MemTracker::record_malloc(ptr, size, memflags, stack, level); |
762 return MemTracker::record_malloc(ptr, size, memflags, stack, level); |
763 #else |
763 #else |
764 if (memblock == NULL) { |
764 if (memblock == NULL) { |
795 if (memblock == NULL) return; |
795 if (memblock == NULL) return; |
796 if ((intptr_t)memblock == (intptr_t)MallocCatchPtr) { |
796 if ((intptr_t)memblock == (intptr_t)MallocCatchPtr) { |
797 log_warning(malloc, free)("os::free caught " PTR_FORMAT, p2i(memblock)); |
797 log_warning(malloc, free)("os::free caught " PTR_FORMAT, p2i(memblock)); |
798 breakpoint(); |
798 breakpoint(); |
799 } |
799 } |
800 void* membase = MemTracker::record_free(memblock); |
800 void* membase = MemTracker::record_free(memblock, MemTracker::tracking_level()); |
801 verify_memory(membase); |
801 verify_memory(membase); |
802 |
802 |
803 GuardedMemory guarded(membase); |
803 GuardedMemory guarded(membase); |
804 size_t size = guarded.get_user_size(); |
804 size_t size = guarded.get_user_size(); |
805 inc_stat_counter(&free_bytes, size); |
805 inc_stat_counter(&free_bytes, size); |
806 membase = guarded.release_for_freeing(); |
806 membase = guarded.release_for_freeing(); |
807 ::free(membase); |
807 ::free(membase); |
808 #else |
808 #else |
809 void* membase = MemTracker::record_free(memblock); |
809 void* membase = MemTracker::record_free(memblock, MemTracker::tracking_level()); |
810 ::free(membase); |
810 ::free(membase); |
811 #endif |
811 #endif |
812 } |
812 } |
813 |
813 |
814 void os::init_random(unsigned int initval) { |
814 void os::init_random(unsigned int initval) { |