summaryrefslogtreecommitdiffstats
path: root/runtime/reflection.cc
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2013-09-23 23:51:32 -0700
committerIan Rogers <irogers@google.com>2013-09-24 17:07:24 -0700
commitfc0e94bed3f88ed7e50854fd8dfaf5dcb345250f (patch)
tree5cfbe05084351576e9659cb8f7b66dcb6163a37b /runtime/reflection.cc
parent576fe9d4181c749aa510e32d2521ed4192bdfda0 (diff)
downloadart-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.cc4
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;
}