Index: src/assembler.cc |
diff --git a/src/assembler.cc b/src/assembler.cc |
index 19662c44972da9aab22ccac15b45fdc3efedbc3f..e5924cdf75df81c057cfb109ba695cc706ee7469 100644 |
--- a/src/assembler.cc |
+++ b/src/assembler.cc |
@@ -1615,19 +1615,20 @@ bool PositionsRecorder::WriteRecordedPositions() { |
EnsureSpace ensure_space(assembler_); |
assembler_->RecordRelocInfo(RelocInfo::STATEMENT_POSITION, |
state_.current_statement_position); |
- state_.written_statement_position = state_.current_statement_position; |
written = true; |
} |
+ state_.written_statement_position = state_.current_statement_position; |
// Write the position if it is different from what was written last time and |
- // also different from the written statement position. |
+ // also different from the statement position that was just written. |
if (state_.current_position != state_.written_position && |
- state_.current_position != state_.written_statement_position) { |
+ (state_.current_position != state_.written_statement_position || |
+ !written)) { |
EnsureSpace ensure_space(assembler_); |
assembler_->RecordRelocInfo(RelocInfo::POSITION, state_.current_position); |
- state_.written_position = state_.current_position; |
written = true; |
} |
+ state_.written_position = state_.current_position; |
// Return whether something was written. |
return written; |