| OLD | NEW | 
|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "courgette/disassembler_elf_32_arm.h" | 5 #include "courgette/disassembler_elf_32_arm.h" | 
| 6 | 6 | 
| 7 #include <memory> | 7 #include <memory> | 
| 8 #include <utility> | 8 #include <utility> | 
| 9 #include <vector> | 9 #include <vector> | 
| 10 | 10 | 
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 359   const Elf32_Rel* section_relocs_iter = reinterpret_cast<const Elf32_Rel*>( | 359   const Elf32_Rel* section_relocs_iter = reinterpret_cast<const Elf32_Rel*>( | 
| 360       FileOffsetToPointer(section_header->sh_offset)); | 360       FileOffsetToPointer(section_header->sh_offset)); | 
| 361 | 361 | 
| 362   uint32_t section_relocs_count = | 362   uint32_t section_relocs_count = | 
| 363       section_header->sh_size / section_header->sh_entsize; | 363       section_header->sh_size / section_header->sh_entsize; | 
| 364 | 364 | 
| 365   if (abs32_locations_.size() > section_relocs_count) | 365   if (abs32_locations_.size() > section_relocs_count) | 
| 366     match = false; | 366     match = false; | 
| 367 | 367 | 
| 368   if (!abs32_locations_.empty()) { | 368   if (!abs32_locations_.empty()) { | 
| 369     std::vector<RVA>::iterator reloc_iter = abs32_locations_.begin(); | 369     std::vector<RVA>::const_iterator reloc_iter = abs32_locations_.begin(); | 
| 370 | 370 | 
| 371     for (uint32_t i = 0; i < section_relocs_count; ++i) { | 371     for (uint32_t i = 0; i < section_relocs_count; ++i) { | 
| 372       if (section_relocs_iter->r_offset == *reloc_iter) | 372       if (section_relocs_iter->r_offset == *reloc_iter) | 
| 373         break; | 373         break; | 
| 374 | 374 | 
| 375       if (!ParseSimpleRegion(file_offset, file_offset + sizeof(Elf32_Rel), | 375       if (!ParseSimpleRegion(file_offset, file_offset + sizeof(Elf32_Rel), | 
| 376                              receptor)) { | 376                              receptor)) { | 
| 377         return false; | 377         return false; | 
| 378       } | 378       } | 
| 379 | 379 | 
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 519       // Move 2 bytes at a time, but track 32-bit boundaries | 519       // Move 2 bytes at a time, but track 32-bit boundaries | 
| 520       p += 2; | 520       p += 2; | 
| 521       on_32bit = ((on_32bit + 1) % 2) != 0; | 521       on_32bit = ((on_32bit + 1) % 2) != 0; | 
| 522     } | 522     } | 
| 523   } | 523   } | 
| 524 | 524 | 
| 525   return true; | 525   return true; | 
| 526 } | 526 } | 
| 527 | 527 | 
| 528 }  // namespace courgette | 528 }  // namespace courgette | 
| OLD | NEW | 
|---|