--- old/src/os/solaris/vm/os_solaris.cpp 2013-05-13 16:33:54.272921000 -0400 +++ new/src/os/solaris/vm/os_solaris.cpp 2013-05-13 16:33:53.198135000 -0400 @@ -3404,21 +3404,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); + NMTTrackOp op(NMTTrackOp::ReserveAndCommitOp); + op.execute_op((address)retAddr, size, 0, CALLER_PC); return retAddr; } bool os::release_memory_special(char* base, size_t bytes) { + NMTTrackOp op(NMTTrackOp::ReleaseOp); // 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); + op.execute_op((address)base, bytes); return true; } else { + op.abort_op(); return false; } }