瀏覽代碼

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()
     auto end_of_next_grapheme = closest_cursor_left_offset + 1 >= m_cached_buffer_metrics.grapheme_breaks.size()
         ? m_buffer.size()
         ? m_buffer.size()
         : m_cached_buffer_metrics.grapheme_breaks[closest_cursor_left_offset + 1];
         : 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);
         remove_at_index(m_cursor);
     m_refresh_needed = true;
     m_refresh_needed = true;
 }
 }