瀏覽代碼

Merge pull request #80847 from bruvzg/rtl_rem_para

[RTL] Fix `remove_paragraph` crashes
Rémi Verschelde 2 年之前
父節點
當前提交
ddb7430536
共有 1 個文件被更改,包括 7 次插入5 次删除
  1. 7 5
      scene/gui/rich_text_label.cpp

+ 7 - 5
scene/gui/rich_text_label.cpp

@@ -3213,17 +3213,19 @@ bool RichTextLabel::remove_paragraph(const int p_paragraph) {
 
 
 	if (!had_newline) {
 	if (!had_newline) {
 		current_frame->lines.remove_at(p_paragraph);
 		current_frame->lines.remove_at(p_paragraph);
-		if (current_frame->lines.size() == 0) {
-			current_frame->lines.resize(1);
-		}
+	}
+
+	if (current_frame->lines.is_empty()) {
+		current_frame->lines.resize(1);
 	}
 	}
 
 
 	if (p_paragraph == 0 && current->subitems.size() > 0) {
 	if (p_paragraph == 0 && current->subitems.size() > 0) {
 		main->lines[0].from = main;
 		main->lines[0].from = main;
 	}
 	}
 
 
-	int to_line = main->first_invalid_line.load();
-	main->first_invalid_line.store(MIN(to_line, p_paragraph));
+	main->first_invalid_line.store(MIN(main->first_invalid_line.load(), p_paragraph));
+	main->first_resized_line.store(MIN(main->first_resized_line.load(), p_paragraph));
+	main->first_invalid_font_line.store(MIN(main->first_invalid_font_line.load(), p_paragraph));
 	queue_redraw();
 	queue_redraw();
 
 
 	return true;
 	return true;