diff options
author | Brian Carlstrom <bdc@google.com> | 2011-10-10 18:05:34 -0700 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2011-10-10 18:21:23 -0700 |
commit | df143242f4beaad4cc9fbabebfc033b68c40964e (patch) | |
tree | 31695ba744f983aa0d8e80c314902e4355cff5ae /src/dalvik_system_DexFile.cc | |
parent | 72ee0ae6207a5c0f1b13bb6a556e3e6f4d77a46a (diff) | |
download | art-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.cc | 11 |
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; } |