Avoid copying and strlen(3) in the FindClass path.
Change-Id: I789f3c883596d1852a2c1954ce7a207e6f937117
diff --git a/src/java_lang_reflect_Array.cc b/src/java_lang_reflect_Array.cc
index 1d8b526..3bf2680 100644
--- a/src/java_lang_reflect_Array.cc
+++ b/src/java_lang_reflect_Array.cc
@@ -46,7 +46,7 @@
}
std::string sub_array_descriptor(ClassHelper(array_class).GetDescriptor() + 1);
ClassLinker* class_linker = Runtime::Current()->GetClassLinker();
- Class* sub_array_class = class_linker->FindClass(sub_array_descriptor,
+ Class* sub_array_class = class_linker->FindClass(sub_array_descriptor.c_str(),
array_class->GetClassLoader());
if (sub_array_class == NULL) {
CHECK(Thread::Current()->IsExceptionPending());
@@ -106,7 +106,7 @@
// Find/generate the array class.
ClassLinker* class_linker = Runtime::Current()->GetClassLinker();
- Class* array_class = class_linker->FindClass(descriptor, element_class->GetClassLoader());
+ Class* array_class = class_linker->FindClass(descriptor.c_str(), element_class->GetClassLoader());
if (array_class == NULL) {
CHECK(Thread::Current()->IsExceptionPending());
return NULL;
@@ -134,7 +134,7 @@
descriptor += ClassHelper(element_class).GetDescriptor();
ClassLinker* class_linker = Runtime::Current()->GetClassLinker();
- Class* array_class = class_linker->FindClass(descriptor, element_class->GetClassLoader());
+ Class* array_class = class_linker->FindClass(descriptor.c_str(), element_class->GetClassLoader());
if (array_class == NULL) {
CHECK(Thread::Current()->IsExceptionPending());
return NULL;