diff options
author | Brian Carlstrom <bdc@google.com> | 2011-10-13 10:24:13 -0700 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2011-10-13 10:24:13 -0700 |
commit | 03a20ba67cfdc46f5ad8d77242a666a4cb0512f2 (patch) | |
tree | c9ad51b063cdcc39b30503fee1a1bb4f755800dd /src/dalvik_system_DexFile.cc | |
parent | b278356581806fd2acd8b14a1b8fb7dc482bcf4e (diff) | |
download | art-03a20ba67cfdc46f5ad8d77242a666a4cb0512f2.zip art-03a20ba67cfdc46f5ad8d77242a666a4cb0512f2.tar.gz art-03a20ba67cfdc46f5ad8d77242a666a4cb0512f2.tar.bz2 |
Implement DexFile_getClassNameList
Change-Id: I9b48628e338a5346bc3ac21f3469e4e3d224a956
Diffstat (limited to 'src/dalvik_system_DexFile.cc')
-rw-r--r-- | src/dalvik_system_DexFile.cc | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/dalvik_system_DexFile.cc b/src/dalvik_system_DexFile.cc index 67ff27f..cad1acd 100644 --- a/src/dalvik_system_DexFile.cc +++ b/src/dalvik_system_DexFile.cc @@ -19,6 +19,7 @@ #include "dex_file.h" #include "logging.h" #include "runtime.h" +#include "toStringArray.h" #include "ScopedUtfChars.h" #include "JniConstants.h" // Last to avoid problems with LOG redefinition. @@ -144,13 +145,23 @@ jobjectArray DexFile_getClassNameList(JNIEnv* env, jclass, jint cookie) { if (dex_file == NULL) { return NULL; } - UNIMPLEMENTED(ERROR); - return NULL; + + std::vector<std::string> class_names; + for (size_t i = 0; i < dex_file->NumClassDefs(); ++i) { + const DexFile::ClassDef& class_def = dex_file->GetClassDef(i); + const char* descriptor = dex_file->GetClassDescriptor(class_def); + class_names.push_back(DescriptorToDot(descriptor)); + } + return toStringArray(env, class_names); } jboolean DexFile_isDexOptNeeded(JNIEnv* env, jclass, jstring javaFilename) { - // TODO: run dex2oat? - UNIMPLEMENTED(WARNING); + ScopedUtfChars filename(env, javaFilename); + if (filename.c_str() == NULL) { + return JNI_FALSE; + } + // TODO: return true if we need to extract dex or run dex2oat + UNIMPLEMENTED(WARNING) << filename.c_str(); return JNI_FALSE; } |