diff --git a/src/hotspot/share/utilities/growableArray.hpp b/src/hotspot/share/utilities/growableArray.hpp index 0697f03b5ad..1823a2ba861 100644 --- a/src/hotspot/share/utilities/growableArray.hpp +++ b/src/hotspot/share/utilities/growableArray.hpp @@ -116,6 +116,12 @@ protected: ~GrowableArrayView() {} +protected: + // Used by AOTGrowableArray for MetaspaceClosure support. + E** data_addr() { + return &_data; + } + public: bool operator==(const GrowableArrayView& rhs) const { if (_len != rhs._len) @@ -297,11 +303,6 @@ public: } tty->print("}\n"); } - - // MetaspaceClosure support. - E** data_addr() { - return &_data; - } }; template diff --git a/test/hotspot/gtest/utilities/test_metaspaceClosure.cpp b/test/hotspot/gtest/utilities/test_metaspaceClosure.cpp index 74397757b0d..c98b38b8c3c 100644 --- a/test/hotspot/gtest/utilities/test_metaspaceClosure.cpp +++ b/test/hotspot/gtest/utilities/test_metaspaceClosure.cpp @@ -95,6 +95,9 @@ public: } return false; } + int visited_count() { + return _count; + } }; // iterate an Array @@ -185,7 +188,6 @@ TEST_VM(MetaspaceClosure, GrowableArray_MSOPointer) { EXPECT_TRUE(closure.has_visited(&x)) << "must be"; EXPECT_TRUE(closure.has_visited(&y)) << "must be"; EXPECT_TRUE(closure.has_visited(&z)) << "must be"; - EXPECT_TRUE(closure.has_visited(*array->data_addr())) << "must visit buffer inside GrowableArray"; } // iterate an AOTGrowableArray @@ -214,7 +216,6 @@ TEST_VM(MetaspaceClosure, GrowableArray_MSO) { EXPECT_TRUE(closure.has_visited(&x)) << "must be"; EXPECT_TRUE(closure.has_visited(&y)) << "must be"; EXPECT_TRUE(closure.has_visited(&z)) << "must be"; - EXPECT_TRUE(closure.has_visited(*array->data_addr())) << "must visit buffer inside GrowableArray"; } // iterate an AOTGrowableArray @@ -226,5 +227,5 @@ TEST_VM(MetaspaceClosure, GrowableArray_jlong) { closure.finish(); EXPECT_TRUE(closure.has_visited(array)) << "must be"; - EXPECT_TRUE(closure.has_visited(*array->data_addr())) << "must visit buffer inside GrowableArray"; + EXPECT_TRUE(closure.visited_count() == 2) << "must visit buffer inside GrowableArray"; }