commit 3e796c680a11593bd09433be22bec45dcfe0d7a7
Author: Richard Kimberly Heck <[email protected]>
Date: Sun Jun 2 14:12:23 2024 -0400
Fix table crash reported on Windows.
---
src/insets/InsetTabular.cpp | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp
index 2f32e3dd8d..1f7cc33ba4 100644
--- a/src/insets/InsetTabular.cpp
+++ b/src/insets/InsetTabular.cpp
@@ -808,6 +808,8 @@ void Tabular::deleteRow(row_type const row, bool const
force)
if (nrows() == 1)
return;
+ LASSERT(row < nrows(), return);
+
// If we are in change tracking mode, and the row is not marked
// as inserted by the same author, we do not delete it, but mark
// it deleted.
@@ -976,6 +978,8 @@ void Tabular::deleteColumn(col_type const col, bool const
force)
if (ncols() == 1)
return;
+ LASSERT(col < ncols(), return);
+
// If we are in change tracking mode, and the column is not marked
// as inserted by the same author, we do not delete it, but mark
// it deleted.
@@ -6779,8 +6783,11 @@ void InsetTabular::tabularFeatures(Cursor & cur,
}
}
- for (row_type r = sel_row_start; r <= sel_row_end; ++r)
+ for (row_type r = sel_row_end; r >= sel_row_start; --r) {
tabular.deleteRow(r);
+ if (r == 0)
+ break;
+ }
if (sel_row_start >= tabular.nrows())
--sel_row_start;
cur.idx() = tabular.cellIndex(sel_row_start, column);
@@ -6802,8 +6809,11 @@ void InsetTabular::tabularFeatures(Cursor & cur,
tabular.leftLine(tabular.cellIndex(r,
0)));
}
- for (col_type c = sel_col_start; c <= sel_col_end; ++c)
+ for (col_type c = sel_col_end; c >= sel_col_start; --c) {
tabular.deleteColumn(c);
+ if (c == 0)
+ break;
+ }
if (sel_col_start >= tabular.ncols())
--sel_col_start;
cur.idx() = tabular.cellIndex(row, sel_col_start);
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs