summaryrefslogtreecommitdiffstats
path: root/src/dalvik_system_DexFile.cc
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2011-10-10 18:05:34 -0700
committerBrian Carlstrom <bdc@google.com>2011-10-10 18:21:23 -0700
commitdf143242f4beaad4cc9fbabebfc033b68c40964e (patch)
tree31695ba744f983aa0d8e80c314902e4355cff5ae /src/dalvik_system_DexFile.cc
parent72ee0ae6207a5c0f1b13bb6a556e3e6f4d77a46a (diff)
downloadart-df143242f4beaad4cc9fbabebfc033b68c40964e.zip
art-df143242f4beaad4cc9fbabebfc033b68c40964e.tar.gz
art-df143242f4beaad4cc9fbabebfc033b68c40964e.tar.bz2
Setup Thread's context ClassLoader and add image DexFiles to ClassLinker's boot classpath
Change-Id: I84337c69ff743c58be9e7125d17fcccb514614ef
Diffstat (limited to 'src/dalvik_system_DexFile.cc')
-rw-r--r--src/dalvik_system_DexFile.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/dalvik_system_DexFile.cc b/src/dalvik_system_DexFile.cc
index 5905642..96b7817 100644
--- a/src/dalvik_system_DexFile.cc
+++ b/src/dalvik_system_DexFile.cc
@@ -117,12 +117,15 @@ jclass DexFile_defineClass(JNIEnv* env, jclass, jstring javaName, jobject javaLo
if (dex_file == NULL) {
return NULL;
}
- String* name = Decode<String*>(env, javaName);
- const char* class_name = name->ToModifiedUtf8().c_str();
- const std::string descriptor = DotToDescriptor(class_name);
+ ScopedUtfChars class_name(env, javaName);
+ if (class_name.c_str() == NULL) {
+ return NULL;
+ }
+ const std::string descriptor = DotToDescriptor(class_name.c_str());
const DexFile::ClassDef* dex_class_def = dex_file->FindClassDef(descriptor);
if (dex_class_def == NULL) {
- jniThrowExceptionFmt(env, "java/lang/NoClassDefFoundError", "Class %s not found", class_name);
+ jniThrowExceptionFmt(env, "java/lang/NoClassDefFoundError", "Class %s not found",
+ class_name.c_str());
return NULL;
}