diff options
Diffstat (limited to 'courgette')
-rw-r--r-- | courgette/disassembler_win32_x64.cc | 12 | ||||
-rw-r--r-- | courgette/disassembler_win32_x86.cc | 12 |
2 files changed, 8 insertions, 16 deletions
diff --git a/courgette/disassembler_win32_x64.cc b/courgette/disassembler_win32_x64.cc index 04356d7..626bd35 100644 --- a/courgette/disassembler_win32_x64.cc +++ b/courgette/disassembler_win32_x64.cc @@ -514,15 +514,11 @@ CheckBool DisassemblerWin32X64::ParseNonSectionFileRegion( if (incomplete_disassembly_) return true; - const uint8* start = OffsetToPointer(start_file_offset); - const uint8* end = OffsetToPointer(end_file_offset); - - const uint8* p = start; - - while (p < end) { - if (!program->EmitByteInstruction(*p)) + if (end_file_offset > start_file_offset) { + if (!program->EmitBytesInstruction(OffsetToPointer(start_file_offset), + end_file_offset - start_file_offset)) { return false; - ++p; + } } return true; diff --git a/courgette/disassembler_win32_x86.cc b/courgette/disassembler_win32_x86.cc index eeb17ec..bb300d9 100644 --- a/courgette/disassembler_win32_x86.cc +++ b/courgette/disassembler_win32_x86.cc @@ -514,15 +514,11 @@ CheckBool DisassemblerWin32X86::ParseNonSectionFileRegion( if (incomplete_disassembly_) return true; - const uint8* start = OffsetToPointer(start_file_offset); - const uint8* end = OffsetToPointer(end_file_offset); - - const uint8* p = start; - - while (p < end) { - if (!program->EmitByteInstruction(*p)) + if (end_file_offset > start_file_offset) { + if (!program->EmitBytesInstruction(OffsetToPointer(start_file_offset), + end_file_offset - start_file_offset)) { return false; - ++p; + } } return true; |