diff options
author | Ian Rogers <irogers@google.com> | 2014-04-28 16:47:08 -0700 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2014-04-29 14:36:28 -0700 |
commit | b0fa5dc7769c1e054032f39de0a3f6d6dd06f8cf (patch) | |
tree | 839d13ebfa7170967dd9b4abd434b7abda53da99 /compiler/image_writer.cc | |
parent | 948740c1938860df055ddc801f20fd1707331e38 (diff) | |
download | art-b0fa5dc7769c1e054032f39de0a3f6d6dd06f8cf.zip art-b0fa5dc7769c1e054032f39de0a3f6d6dd06f8cf.tar.gz art-b0fa5dc7769c1e054032f39de0a3f6d6dd06f8cf.tar.bz2 |
Force inlining on trivial accessors.
Make volatility for GetFieldObject a template parameter.
Move some trivial mirror::String routines to a -inl.h.
Bug: 14285442
Change-Id: Ie23b11d4f18cb15a62c3bbb42837a8aaf6b68f92
Diffstat (limited to 'compiler/image_writer.cc')
-rw-r--r-- | compiler/image_writer.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/compiler/image_writer.cc b/compiler/image_writer.cc index c35d400..e6d983f 100644 --- a/compiler/image_writer.cc +++ b/compiler/image_writer.cc @@ -45,6 +45,7 @@ #include "mirror/dex_cache-inl.h" #include "mirror/object-inl.h" #include "mirror/object_array-inl.h" +#include "mirror/string-inl.h" #include "oat.h" #include "oat_file.h" #include "object_utils.h" @@ -448,7 +449,7 @@ void ImageWriter::WalkInstanceFields(mirror::Object* obj, mirror::Class* klass) for (size_t i = 0; i < num_reference_fields; ++i) { mirror::ArtField* field = sirt_class->GetInstanceField(i); MemberOffset field_offset = field->GetOffset(); - mirror::Object* value = obj->GetFieldObject<mirror::Object>(field_offset, false); + mirror::Object* value = obj->GetFieldObject<mirror::Object>(field_offset); if (value != nullptr) { WalkFieldsInOrder(value); } @@ -471,7 +472,7 @@ void ImageWriter::WalkFieldsInOrder(mirror::Object* obj) { for (size_t i = 0; i < num_static_fields; ++i) { mirror::ArtField* field = klass->GetStaticField(i); MemberOffset field_offset = field->GetOffset(); - mirror::Object* value = sirt_obj->GetFieldObject<mirror::Object>(field_offset, false); + mirror::Object* value = sirt_obj->GetFieldObject<mirror::Object>(field_offset); if (value != nullptr) { WalkFieldsInOrder(value); } @@ -586,11 +587,11 @@ class FixupVisitor { void operator()(Object* obj, MemberOffset offset, bool /*is_static*/) const EXCLUSIVE_LOCKS_REQUIRED(Locks::mutator_lock_, Locks::heap_bitmap_lock_) { - Object* ref = obj->GetFieldObject<Object, kVerifyNone>(offset, false); + Object* ref = obj->GetFieldObject<Object, kVerifyNone, false>(offset); // Use SetFieldObjectWithoutWriteBarrier to avoid card marking since we are writing to the // image. copy_->SetFieldObjectWithoutWriteBarrier<false, true, kVerifyNone>( - offset, image_writer_->GetImageAddress(ref), false); + offset, image_writer_->GetImageAddress(ref)); } // java.lang.ref.Reference visitor. @@ -598,8 +599,7 @@ class FixupVisitor { SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) EXCLUSIVE_LOCKS_REQUIRED(Locks::heap_bitmap_lock_) { copy_->SetFieldObjectWithoutWriteBarrier<false, true, kVerifyNone>( - mirror::Reference::ReferentOffset(), image_writer_->GetImageAddress(ref->GetReferent()), - false); + mirror::Reference::ReferentOffset(), image_writer_->GetImageAddress(ref->GetReferent())); } private: |