Remove OatWriter buffering to memory for ElfWriterQuick
This allows the oat contents to be directly written to the file.
Change-Id: Ibc7ddf57477b152f07784b52f7334be73fd22833
diff --git a/runtime/image_test.cc b/runtime/image_test.cc
index 11218ad..75eead4 100644
--- a/runtime/image_test.cc
+++ b/runtime/image_test.cc
@@ -41,7 +41,6 @@
TEST_F(ImageTest, WriteRead) {
ScratchFile tmp_elf;
{
- std::vector<uint8_t> oat_contents;
{
jobject class_loader = NULL;
ClassLinker* class_linker = Runtime::Current()->GetClassLinker();
@@ -49,17 +48,14 @@
compiler_driver_->CompileAll(class_loader, class_linker->GetBootClassPath(), timings);
ScopedObjectAccess soa(Thread::Current());
- VectorOutputStream output_stream(tmp_elf.GetFilename(), oat_contents);
- bool success_oat = OatWriter::Create(output_stream, class_linker->GetBootClassPath(),
- 0, 0, "", *compiler_driver_.get());
- ASSERT_TRUE(success_oat);
-
- bool success_elf = compiler_driver_->WriteElf(GetTestAndroidRoot(),
- !kIsTargetBuild,
- class_linker->GetBootClassPath(),
- oat_contents,
- tmp_elf.GetFile());
- ASSERT_TRUE(success_elf);
+ OatWriter oat_writer(class_linker->GetBootClassPath(),
+ 0, 0, "", compiler_driver_.get());
+ bool success = compiler_driver_->WriteElf(GetTestAndroidRoot(),
+ !kIsTargetBuild,
+ class_linker->GetBootClassPath(),
+ oat_writer,
+ tmp_elf.GetFile());
+ ASSERT_TRUE(success);
}
}
// Workound bug that mcld::Linker::emit closes tmp_elf by reopening as tmp_oat.