Fix checksum verification when opening DexFiles from OatFiles

Change-Id: Ic3d13f3d591c34f159bf0739536a1751c3e7dc75
diff --git a/src/dex2oat.cc b/src/dex2oat.cc
index c4ca894..25c1d82 100644
--- a/src/dex2oat.cc
+++ b/src/dex2oat.cc
@@ -379,6 +379,21 @@
   return true;
 }
 
+void OpenDexFiles(const std::vector<const char*>& dex_filenames,
+                  std::vector<const DexFile*>& dex_files,
+                  const std::string& strip_location_prefix) {
+  for (size_t i = 0; i < dex_filenames.size(); i++) {
+    const char* dex_filename = dex_filenames[i];
+    const DexFile* dex_file = DexFile::Open(dex_filename, strip_location_prefix);
+    if (dex_file == NULL) {
+      fprintf(stderr, "could not open .dex from file %s\n", dex_filename);
+      exit(EXIT_FAILURE);
+    }
+    dex_files.push_back(dex_file);
+  }
+}
+
+
 int dex2oat(int argc, char** argv) {
   // Skip over argv[0].
   argv++;
@@ -609,7 +624,7 @@
       }
       dex_files.push_back(dex_file);
     } else {
-      DexFile::OpenDexFiles(dex_filenames, dex_files, host_prefix);
+      OpenDexFiles(dex_filenames, dex_files, host_prefix);
     }
   }