--- old/test/hotspot/gtest/memory/test_virtualspace.cpp 2018-10-17 14:11:41.000000000 -0700 +++ new/test/hotspot/gtest/memory/test_virtualspace.cpp 2018-10-17 14:11:40.000000000 -0700 @@ -193,6 +193,15 @@ Commit }; + class ReservedSpaceReleaser { + ReservedSpace* const _rs; + public: + ReservedSpaceReleaser(ReservedSpace* rs) : _rs(rs) { } + ~ReservedSpaceReleaser() { + _rs->release(); + } + }; + ReservedSpace reserve_memory(size_t reserve_size_aligned, TestLargePages mode) { switch(mode) { default: @@ -226,6 +235,7 @@ size_t reserve_size_aligned = align_up(reserve_size, granularity); ReservedSpace reserved = reserve_memory(reserve_size_aligned, mode); + ReservedSpaceReleaser releaser(&reserved); ASSERT_TRUE(reserved.is_reserved()); @@ -244,8 +254,6 @@ os::vm_page_size() : os::large_page_size(); EXPECT_LT(vs.actual_committed_size(), commit_size + commit_granularity); } - - reserved.release(); } }; @@ -284,6 +292,7 @@ size_t large_page_size = os::large_page_size(); ReservedSpace reserved(large_page_size, large_page_size, true, false); + ReservedSpaceReleaser releaser(&reserved); ASSERT_TRUE(reserved.is_reserved()); VirtualSpace vs; @@ -291,8 +300,6 @@ vs.expand_by(large_page_size, false); EXPECT_EQ(large_page_size, vs.actual_committed_size()); - - reserved.release(); } TEST_VM(VirtualSpace, disable_large_pages) {