Allow patching between dex files in the boot classpath.

Change-Id: I53f219a5382d0fcd580e96e50025fdad4fc399df
diff --git a/compiler/driver/compiler_driver.h b/compiler/driver/compiler_driver.h
index 26210c9..e0f3a1a 100644
--- a/compiler/driver/compiler_driver.h
+++ b/compiler/driver/compiler_driver.h
@@ -323,6 +323,7 @@
                     uint32_t referrer_method_idx,
                     InvokeType referrer_invoke_type,
                     uint32_t target_method_idx,
+                    const DexFile* target_dex_file,
                     InvokeType target_invoke_type,
                     size_t literal_offset)
       LOCKS_EXCLUDED(compiled_methods_lock_);
@@ -331,6 +332,7 @@
                             uint32_t referrer_method_idx,
                             InvokeType referrer_invoke_type,
                             uint32_t target_method_idx,
+                            const DexFile* target_dex_file,
                             InvokeType target_invoke_type,
                             size_t literal_offset,
                             int32_t pc_relative_offset)
@@ -340,6 +342,7 @@
                       uint32_t referrer_method_idx,
                       InvokeType referrer_invoke_type,
                       uint32_t target_method_idx,
+                      const DexFile* target_dex_file,
                       InvokeType target_invoke_type,
                       size_t literal_offset)
       LOCKS_EXCLUDED(compiled_methods_lock_);
@@ -456,6 +459,9 @@
     uint32_t GetTargetMethodIdx() const {
       return target_method_idx_;
     }
+    const DexFile* GetTargetDexFile() const {
+      return target_dex_file_;
+    }
     InvokeType GetTargetInvokeType() const {
       return target_invoke_type_;
     }
@@ -479,18 +485,21 @@
                          uint32_t referrer_method_idx,
                          InvokeType referrer_invoke_type,
                          uint32_t target_method_idx,
+                         const DexFile* target_dex_file,
                          InvokeType target_invoke_type,
                          size_t literal_offset)
         : PatchInformation(dex_file, referrer_class_def_idx,
                            referrer_method_idx, literal_offset),
           referrer_invoke_type_(referrer_invoke_type),
           target_method_idx_(target_method_idx),
+          target_dex_file_(target_dex_file),
           target_invoke_type_(target_invoke_type) {
     }
 
    private:
     const InvokeType referrer_invoke_type_;
     const uint32_t target_method_idx_;
+    const DexFile* target_dex_file_;
     const InvokeType target_invoke_type_;
 
     friend class CompilerDriver;
@@ -512,12 +521,13 @@
                                  uint32_t referrer_method_idx,
                                  InvokeType referrer_invoke_type,
                                  uint32_t target_method_idx,
+                                 const DexFile* target_dex_file,
                                  InvokeType target_invoke_type,
                                  size_t literal_offset,
                                  int32_t pc_relative_offset)
         : CallPatchInformation(dex_file, referrer_class_def_idx,
-                           referrer_method_idx, referrer_invoke_type,
-                           target_method_idx, target_invoke_type, literal_offset),
+                           referrer_method_idx, referrer_invoke_type, target_method_idx,
+                           target_dex_file, target_invoke_type, literal_offset),
           offset_(pc_relative_offset) {
     }