From: Narayan Kamath Date: Mon, 1 Sep 2014 15:55:16 +0000 (+0000) Subject: Merge "Fix frame size issue with 64-bit" X-Git-Tag: android-x86-7.1-r1~889^2~3201 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=dcea56f4132bc19abf867ee9ef01244d5283c2cf;p=android-x86%2Fart.git Merge "Fix frame size issue with 64-bit" --- dcea56f4132bc19abf867ee9ef01244d5283c2cf diff --cc compiler/elf_writer_quick.cc index e45eb6103,acbdcb1e5..d011dbead --- a/compiler/elf_writer_quick.cc +++ b/compiler/elf_writer_quick.cc @@@ -976,15 -1056,21 +976,21 @@@ bool ElfWriterQuick::Write(OatWriter* o bool is_host_unused) { constexpr bool debug = false; const OatHeader& oat_header = oat_writer->GetOatHeader(); - Elf_Word oat_data_size = oat_header.GetExecutableOffset(); + Elf32_Word oat_data_size = oat_header.GetExecutableOffset(); uint32_t oat_exec_size = oat_writer->GetSize() - oat_data_size; - ElfBuilder builder(oat_writer, elf_file_, compiler_driver_->GetInstructionSet(), 0, - oat_data_size, oat_data_size, oat_exec_size, - compiler_driver_->GetCompilerOptions().GetIncludeDebugSymbols(), - debug); - - if (!builder.Init()) { + std::unique_ptr builder(new ElfBuilder( + oat_writer, + elf_file_, + compiler_driver_->GetInstructionSet(), + 0, + oat_data_size, + oat_data_size, + oat_exec_size, + compiler_driver_->GetCompilerOptions().GetIncludeDebugSymbols(), + debug)); + + if (!builder->Init()) { return false; } @@@ -996,13 -1082,17 +1002,13 @@@ ElfRawSectionBuilder oat_patches(".oat_patches", SHT_OAT_PATCH, 0, NULL, 0, sizeof(uintptr_t), sizeof(uintptr_t)); ReservePatchSpace(oat_patches.GetBuffer(), debug); - builder.RegisterRawSection(oat_patches); + builder->RegisterRawSection(oat_patches); } - return builder.Write(); + return builder->Write(); } -template -void ElfWriterQuick::WriteDebugSymbols(ElfBuilder* builder, OatWriter* oat_writer) { +void ElfWriterQuick::WriteDebugSymbols(ElfBuilder* builder, OatWriter* oat_writer) { std::unique_ptr> cfi_info( ConstructCIEFrame(compiler_driver_->GetInstructionSet()));