OSDN Git Service

Pass DexPathList.Element array to openDexFileNative
authorMathieu Chartier <mathieuc@google.com>
Fri, 20 Nov 2015 18:29:42 +0000 (10:29 -0800)
committerMathieu Chartier <mathieuc@google.com>
Fri, 20 Nov 2015 18:35:18 +0000 (10:35 -0800)
App images will use this to check for conflicts. It is required to
pass down since the class loader won't have the element array until
after all of the elements in the dex path list are loaded.

Bug: 22858531
Change-Id: I4f3d85b5e0ad542298fc8458bafe6504c263dc41

runtime/native/dalvik_system_DexFile.cc

index 4cd3c3d..da6cf1f 100644 (file)
@@ -155,7 +155,9 @@ static jobject DexFile_openDexFileNative(JNIEnv* env,
                                          jstring javaOutputName,
                                          jint flags ATTRIBUTE_UNUSED,
                                          // class_loader will be used for app images.
-                                         jobject class_loader ATTRIBUTE_UNUSED) {
+                                         jobject class_loader ATTRIBUTE_UNUSED,
+                                         // dex_elements will be used for app images.
+                                         jobject dex_elements ATTRIBUTE_UNUSED) {
   ScopedUtfChars sourceName(env, javaSourceName);
   if (sourceName.c_str() == nullptr) {
     return 0;
@@ -445,7 +447,12 @@ static JNINativeMethod gMethods[] = {
   NATIVE_METHOD(DexFile, getDexOptNeeded,
                 "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)I"),
   NATIVE_METHOD(DexFile, openDexFileNative,
-                "(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;)Ljava/lang/Object;"),
+                "(Ljava/lang/String;"
+                "Ljava/lang/String;"
+                "I"
+                "Ljava/lang/ClassLoader;"
+                "[Ldalvik/system/DexPathList$Element;"
+                ")Ljava/lang/Object;"),
 };
 
 void register_dalvik_system_DexFile(JNIEnv* env) {