Fix the handful of leaks detectable in our tests.

Change-Id: I74ad1a3831fbebad60ff24f0b3ac07cade823b7a
diff --git a/src/common_test.h b/src/common_test.h
index 402766f..a7daba1 100644
--- a/src/common_test.h
+++ b/src/common_test.h
@@ -33,13 +33,13 @@
   // decode base64
   CHECK(base64 != NULL);
   size_t length;
-  byte* dex_bytes = DecodeBase64(base64, &length);
-  CHECK(dex_bytes != NULL);
+  UniquePtr<byte[]> dex_bytes(DecodeBase64(base64, &length));
+  CHECK(dex_bytes.get() != NULL);
 
   // write to provided file
   UniquePtr<File> file(OS::OpenFile(location.c_str(), true));
   CHECK(file.get() != NULL);
-  if (!file->WriteFully(dex_bytes, length)) {
+  if (!file->WriteFully(dex_bytes.get(), length)) {
     PLOG(FATAL) << "Failed to write base64 as dex file";
   }
   file.reset();
@@ -295,6 +295,7 @@
     (*icu_cleanup_fn)();
 
     compiler_.reset();
+    STLDeleteElements(&opened_dex_files_);
 
     Heap::VerifyHeap();  // Check for heap corruption after the test
   }
@@ -325,13 +326,13 @@
     filename += ".jar";
     const DexFile* dex_file = DexFile::Open(filename, "");
     CHECK(dex_file != NULL) << "Failed to open " << filename;
+    opened_dex_files_.push_back(dex_file);
     return dex_file;
   }
 
   ClassLoader* LoadDex(const char* dex_name) {
     const DexFile* dex_file = OpenTestDexFile(dex_name);
     CHECK(dex_file != NULL);
-    loaded_dex_files_.push_back(dex_file);
     class_linker_->RegisterDexFile(*dex_file);
     std::vector<const DexFile*> class_path;
     class_path.push_back(dex_file);
@@ -398,7 +399,7 @@
   UniquePtr<Compiler> compiler_;
 
  private:
-  std::vector<const DexFile*> loaded_dex_files_;
+  std::vector<const DexFile*> opened_dex_files_;
 };
 
 }  // namespace art