summaryrefslogtreecommitdiffstats
path: root/courgette
diff options
context:
space:
mode:
Diffstat (limited to 'courgette')
-rw-r--r--courgette/disassembler_win32_x64.cc12
-rw-r--r--courgette/disassembler_win32_x86.cc12
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;