Deterministic VerifierDeps::Dump().

This makes is easier to diff oatdump output.

Test: m dump-oat-boot && \
      grep 'Dependencies of ' out/soong/boot.arm.oatdump.txt
      (framework.jar dex files are ordered properly.)

Change-Id: I55f14950f00e4c3cbdda53ec513837d11ade026e
diff --git a/runtime/verifier/verifier_deps.cc b/runtime/verifier/verifier_deps.cc
index ed5488c..219627f 100644
--- a/runtime/verifier/verifier_deps.cc
+++ b/runtime/verifier/verifier_deps.cc
@@ -830,7 +830,20 @@
 }
 
 void VerifierDeps::Dump(VariableIndentationOutputStream* vios) const {
+  // Sort dex files by their location to ensure deterministic ordering.
+  using DepsEntry = std::pair<const DexFile*, const DexFileDeps*>;
+  std::vector<DepsEntry> dex_deps;
+  dex_deps.reserve(dex_deps_.size());
   for (const auto& dep : dex_deps_) {
+    dex_deps.emplace_back(dep.first, dep.second.get());
+  }
+  std::sort(
+      dex_deps.begin(),
+      dex_deps.end(),
+      [](const DepsEntry& lhs, const DepsEntry& rhs) {
+        return lhs.first->GetLocation() < rhs.first->GetLocation();
+      });
+  for (const auto& dep : dex_deps) {
     const DexFile& dex_file = *dep.first;
     vios->Stream()
         << "Dependencies of "