summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2023-08-21 14:36:07 +0300
committerbruvzg <7645683+bruvzg@users.noreply.github.com>2023-08-21 14:36:07 +0300
commitcd6b0368f6231fd2d34dc273022f04554e5e74d9 (patch)
tree3d7d68cd1324a0bc8701ae577ccf75efd3262510
parent970be7afdc111ccc7459d7ef3560de70e6d08c80 (diff)
downloadredot-engine-cd6b0368f6231fd2d34dc273022f04554e5e74d9.tar.gz
[RTL] Fix remove_paragraph crashes.
-rw-r--r--scene/gui/rich_text_label.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index 4780ce873c..f48de85760 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -3213,17 +3213,19 @@ bool RichTextLabel::remove_paragraph(const int p_paragraph) {
if (!had_newline) {
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) {
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();
return true;