diff options
author | Ian Rogers <irogers@google.com> | 2013-09-23 23:51:32 -0700 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2013-09-24 17:07:24 -0700 |
commit | fc0e94bed3f88ed7e50854fd8dfaf5dcb345250f (patch) | |
tree | 5cfbe05084351576e9659cb8f7b66dcb6163a37b /runtime/reflection.cc | |
parent | 576fe9d4181c749aa510e32d2521ed4192bdfda0 (diff) | |
download | art-fc0e94bed3f88ed7e50854fd8dfaf5dcb345250f.tar.gz art-fc0e94bed3f88ed7e50854fd8dfaf5dcb345250f.tar.bz2 art-fc0e94bed3f88ed7e50854fd8dfaf5dcb345250f.zip |
StringPiece clean up.
Profile guided clean up.
Try to avoid creating StringPieces with the contents of a dex file where
the length is known.
Try to avoid RegTypeCache::FromDescriptor when there's a class available.
Make ConstantType::ConstantValue inlinable.
Saving of about 50ms from a 2 threaded ThinkFree compile on host.
Change-Id: I47a12c3c76f46e2c9805be1c3a3e3870fe1f5d85
Diffstat (limited to 'runtime/reflection.cc')
-rw-r--r-- | runtime/reflection.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/runtime/reflection.cc b/runtime/reflection.cc index 3e58b4bd94..4ff7349833 100644 --- a/runtime/reflection.cc +++ b/runtime/reflection.cc @@ -323,7 +323,7 @@ static bool UnboxPrimitive(const ThrowLocation* throw_location, mirror::Object* } JValue boxed_value; - std::string src_descriptor(ClassHelper(o->GetClass()).GetDescriptor()); + const StringPiece src_descriptor(ClassHelper(o->GetClass()).GetDescriptorAsStringPiece()); mirror::Class* src_class = NULL; ClassLinker* class_linker = Runtime::Current()->GetClassLinker(); mirror::ArtField* primitive_field = o->GetClass()->GetIFields()->Get(0); @@ -356,7 +356,7 @@ static bool UnboxPrimitive(const ThrowLocation* throw_location, mirror::Object* StringPrintf("%s has type %s, got %s", UnboxingFailureKind(m, index, f).c_str(), PrettyDescriptor(dst_class).c_str(), - PrettyDescriptor(src_descriptor.c_str()).c_str()).c_str()); + PrettyDescriptor(src_descriptor.data()).c_str()).c_str()); return false; } |