소스 검색

LibLine: Use the correct loop conditions for erase_character_forwards()

Prior to this commit, the loop would continue forever and try to remove
the same index every time, eventually hitting a VERIFY and crashing.
Ali Mohammad Pur 1 년 전
부모
커밋
8b2beb2ebe
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      Userland/Libraries/LibLine/InternalFunctions.cpp

+ 1 - 1
Userland/Libraries/LibLine/InternalFunctions.cpp

@@ -168,7 +168,7 @@ void Editor::erase_character_forwards()
     auto end_of_next_grapheme = closest_cursor_left_offset + 1 >= m_cached_buffer_metrics.grapheme_breaks.size()
         ? m_buffer.size()
         : m_cached_buffer_metrics.grapheme_breaks[closest_cursor_left_offset + 1];
-    for (; m_cursor < end_of_next_grapheme;)
+    for (auto cursor = m_cursor; cursor < end_of_next_grapheme; ++cursor)
         remove_at_index(m_cursor);
     m_refresh_needed = true;
 }