Am 12.02.2020 um 14:50 schrieb Scott Kostyshak <skost...@lyx.org>: > > On Wed, Feb 12, 2020 at 12:14:07PM +0100, Stephan Witt wrote: >> commit e900b61d46f02b2af9afcc697168e47e846b982d >> Author: Stephan Witt <sw...@lyx.org> >> Date: Wed Feb 12 12:32:31 2020 +0100 >> >> Make cell index of tabular local for column loop. >> --- >> src/insets/InsetTabular.cpp | 4 +--- >> 1 files changed, 1 insertions(+), 3 deletions(-) >> >> diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp >> index bc57e1a..7b4db19 100644 >> --- a/src/insets/InsetTabular.cpp >> +++ b/src/insets/InsetTabular.cpp >> @@ -3024,8 +3024,6 @@ void Tabular::TeXRow(otexstream & os, row_type row, >> OutputParams const & runparams, >> list<col_type> columns, list<col_type> logical_columns) >> const >> { >> - idx_type cell = cellIndex(row, 0); >> - >> //output the top line >> TeXTopHLine(os, row, columns, logical_columns); >> >> @@ -3061,7 +3059,7 @@ void Tabular::TeXRow(otexstream & os, row_type row, >> if (isPartOfMultiColumn(row, c)) >> continue; >> >> - cell = cellIndex(row, c); >> + idx_type cell = cellIndex(row, c); >> >> if (isPartOfMultiRow(row, c) >> && column_info[c].alignment != LYX_ALIGN_DECIMAL) { > > I just ask out curiosity (I still consider myself a beginner in C++): > Why make this change? I find the code with your change more readable: in > addition to clarifying that cell is used only inside of the for loop, it > also makes obvious that the value of cell from the previous iteration is > not used in the current iteration.
IMO, readability is the biggest gain of this style. I’d like the scope of a variable to be as narrow as possible. Another point the compiler mentioned: in case of the loop not being entered the assignment before the loop is useless. > Is it true that without optimization, this change would be less > efficient because cell has to be recreated (so memory allocated) on each > iteration of the for loop? But is the idea that compilers recognize this > and only allocate memory once so that in practice there is no loss in > efficiency? I cannot imagine that optimization of allocated memory is an issue. I think the memory is allocated locally on stack anyway. Stephan -- lyx-devel mailing list lyx-devel@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-devel