Chromium Code Reviews| Index: courgette/disassembler_elf_32.cc |
| diff --git a/courgette/disassembler_elf_32.cc b/courgette/disassembler_elf_32.cc |
| index fc4c3793c0fb08a53a3bba42794ea7b00c6c7ed4..1eef784b3c77d72602da1fc5bd329db4f4f5dbae 100644 |
| --- a/courgette/disassembler_elf_32.cc |
| +++ b/courgette/disassembler_elf_32.cc |
| @@ -408,14 +408,13 @@ CheckBool DisassemblerElf32::ParseSimpleRegion( |
| const uint8* start = OffsetToPointer(start_file_offset); |
| const uint8* end = OffsetToPointer(end_file_offset); |
| + const uint32 len = end - start; // Works because vars are byte pointers |
|
Ben Chan
2013/08/09 20:58:39
nit: two spaces between comment
(note: generally,
paulgazz
2013/08/09 23:23:31
Done spaces.
Regarding ptrdiff_t: the underlying
|
| - const uint8* p = start; |
| + // Callers don't guarantee start < end |
| + if (start >= end) return true; |
| - while (p < end) { |
| - if (!program->EmitByteInstruction(*p)) |
| - return false; |
| - ++p; |
| - } |
| + if (!program->EmitBytesInstruction(start, len)) |
| + return false; |
| return true; |
| } |