diff options
author | 2019-03-22 13:38:57 +0000 | |
---|---|---|
committer | 2019-03-25 16:54:37 +0000 | |
commit | 179b7c61ea6769b99f70c80a7a89cbb212423ec2 (patch) | |
tree | 06130898bfb2d8c3f71f4fe181277f20e1942726 /runtime/reference_table_test.cc | |
parent | c8b7d445e02b752a68d824e2bc69658dfb76288a (diff) |
ObjPtr<>-ify String allocations, fix stale refs.
ObjPtr<>-ify String allocation functions and related code
and remove some unnecessary calls to ObjPtr<>::Ptr(). Fix
stale reference uses in reference_table_test and stub_test.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 31113334
Change-Id: I42927fb8b7240e5132188f73318b2ccb218748fd
Diffstat (limited to 'runtime/reference_table_test.cc')
-rw-r--r-- | runtime/reference_table_test.cc | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/runtime/reference_table_test.cc b/runtime/reference_table_test.cc index 2acb2c7a82..e5c1e6aaae 100644 --- a/runtime/reference_table_test.cc +++ b/runtime/reference_table_test.cc @@ -42,7 +42,7 @@ using android::base::StringPrintf; class ReferenceTableTest : public CommonRuntimeTest {}; -static mirror::Object* CreateWeakReference(mirror::Object* referent) +static ObjPtr<mirror::Object> CreateWeakReference(ObjPtr<mirror::Object> referent) REQUIRES_SHARED(Locks::mutator_lock_) { Thread* self = Thread::Current(); ClassLinker* class_linker = Runtime::Current()->GetClassLinker(); @@ -77,7 +77,9 @@ static mirror::Object* CreateWeakReference(mirror::Object* referent) TEST_F(ReferenceTableTest, Basics) { ScopedObjectAccess soa(Thread::Current()); - mirror::Object* o1 = mirror::String::AllocFromModifiedUtf8(soa.Self(), "hello"); + StackHandleScope<5u> hs(soa.Self()); + Handle<mirror::String> o1 = + hs.NewHandle(mirror::String::AllocFromModifiedUtf8(soa.Self(), "hello")); ReferenceTable rt("test", 0, 11); @@ -89,17 +91,17 @@ TEST_F(ReferenceTableTest, Basics) { EXPECT_EQ(0U, rt.Size()); } - // Check removal of all nullss in a empty table is a no-op. + // Check removal of all nulls in a empty table is a no-op. rt.Remove(nullptr); EXPECT_EQ(0U, rt.Size()); // Check removal of all o1 in a empty table is a no-op. - rt.Remove(o1); + rt.Remove(o1.Get()); EXPECT_EQ(0U, rt.Size()); // Add o1 and check we have 1 element and can dump. { - rt.Add(o1); + rt.Add(o1.Get()); EXPECT_EQ(1U, rt.Size()); std::ostringstream oss; rt.Dump(oss); @@ -108,9 +110,9 @@ TEST_F(ReferenceTableTest, Basics) { } // Add a second object 10 times and check dumping is sane. - ObjPtr<mirror::Object> o2 = mirror::ShortArray::Alloc(soa.Self(), 0); + Handle<mirror::ShortArray> o2 = hs.NewHandle(mirror::ShortArray::Alloc(soa.Self(), 0)); for (size_t i = 0; i < 10; ++i) { - rt.Add(o2); + rt.Add(o2.Get()); EXPECT_EQ(i + 2, rt.Size()); std::ostringstream oss; rt.Dump(oss); @@ -129,7 +131,7 @@ TEST_F(ReferenceTableTest, Basics) { // Remove o1 (first element). { - rt.Remove(o1); + rt.Remove(o1.Get()); EXPECT_EQ(10U, rt.Size()); std::ostringstream oss; rt.Dump(oss); @@ -138,7 +140,7 @@ TEST_F(ReferenceTableTest, Basics) { // Remove o2 ten times. for (size_t i = 0; i < 10; ++i) { - rt.Remove(o2); + rt.Remove(o2.Get()); EXPECT_EQ(9 - i, rt.Size()); std::ostringstream oss; rt.Dump(oss); @@ -154,7 +156,7 @@ TEST_F(ReferenceTableTest, Basics) { // Add a reference and check that the type of the referent is dumped. { - mirror::Object* empty_reference = CreateWeakReference(nullptr); + ObjPtr<mirror::Object> empty_reference = CreateWeakReference(nullptr); ASSERT_TRUE(empty_reference->IsReferenceInstance()); rt.Add(empty_reference); std::ostringstream oss; @@ -165,8 +167,9 @@ TEST_F(ReferenceTableTest, Basics) { } { - mirror::Object* string_referent = mirror::String::AllocFromModifiedUtf8(Thread::Current(), "A"); - mirror::Object* non_empty_reference = CreateWeakReference(string_referent); + ObjPtr<mirror::Object> string_referent = + mirror::String::AllocFromModifiedUtf8(Thread::Current(), "A"); + ObjPtr<mirror::Object> non_empty_reference = CreateWeakReference(string_referent); ASSERT_TRUE(non_empty_reference->IsReferenceInstance()); rt.Add(non_empty_reference); std::ostringstream oss; @@ -179,7 +182,6 @@ TEST_F(ReferenceTableTest, Basics) { // Add two objects. Enable allocation tracking for the latter. { - StackHandleScope<3> hs(soa.Self()); Handle<mirror::String> h_without_trace(hs.NewHandle( mirror::String::AllocFromModifiedUtf8(soa.Self(), "Without"))); |