--- a/hotspot/src/os/solaris/vm/os_solaris.cpp Mon Jun 10 10:45:19 2013 -0400
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp Tue Jun 18 08:44:08 2013 -0400
@@ -3532,22 +3532,21 @@
}
// The memory is committed
- address pc = CALLER_PC;
- MemTracker::record_virtual_memory_reserve((address)retAddr, size, pc);
- MemTracker::record_virtual_memory_commit((address)retAddr, size, pc);
+ MemTracker::record_virtual_memory_reserve_and_commit((address)retAddr, size, mtNone, CURRENT_PC);
return retAddr;
}
bool os::release_memory_special(char* base, size_t bytes) {
+ MemTracker::Tracker tkr = MemTracker::get_virtual_memory_release_tracker();
// detaching the SHM segment will also delete it, see reserve_memory_special()
int rslt = shmdt(base);
if (rslt == 0) {
- MemTracker::record_virtual_memory_uncommit((address)base, bytes);
- MemTracker::record_virtual_memory_release((address)base, bytes);
+ tkr.record((address)base, bytes);
return true;
} else {
- return false;
+ tkr.discard();
+ return false;
}
}