[LyX/master] Do not pass list of columns parameter by value
Jean-Marc Lasgouttes
lasgouttes at lyx.org
Fri Jan 12 13:30:56 UTC 2024
Le 12/01/2024 à 10:55, Jean-Marc Lasgouttes a écrit :
> commit 952851a9bcbe6801e73aacc86de0b40bab7d192b
> Author: Jean-Marc Lasgouttes <lasgouttes at lyx.org>
> Date: Fri Jan 12 12:16:31 2024 +0100
>
> Do not pass list of columns parameter by value
>
> There is no need for copying this information.
Jürgen, is that OK or did I miss something?
I am trying to see whether there are important things in the 522 defects
that coverity found in last October :(
There is also a "free after use" in old and scary docstream code, and
some possibility of dereferencing end() on a container in
Tabular::TeXTopHLine, but I do not see how these work.
JMarc
>
> Noticed by coverity scan.
> ---
> src/insets/InsetTabular.cpp | 14 +++++++-------
> src/insets/InsetTabular.h | 16 ++++++++--------
> 2 files changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp
> index 27201d2..112e806 100644
> --- a/src/insets/InsetTabular.cpp
> +++ b/src/insets/InsetTabular.cpp
> @@ -2599,8 +2599,8 @@ bool Tabular::isPartOfMultiRow(row_type row, col_type column) const
> }
>
>
> -void Tabular::TeXTopHLine(otexstream & os, row_type row, list<col_type> columns,
> - list<col_type> logical_columns) const
> +void Tabular::TeXTopHLine(otexstream & os, row_type row, list<col_type> const & columns,
> + list<col_type> const & logical_columns) const
> {
> // we only output complete row lines and the 1st row here, the rest
> // is done in Tabular::TeXBottomHLine(...)
> @@ -2716,8 +2716,8 @@ void Tabular::TeXTopHLine(otexstream & os, row_type row, list<col_type> columns,
> }
>
>
> -void Tabular::TeXBottomHLine(otexstream & os, row_type row, list<col_type> columns,
> - list<col_type> logical_columns) const
> +void Tabular::TeXBottomHLine(otexstream & os, row_type row, list<col_type> const & columns,
> + list<col_type> const & logical_columns) const
> {
> // we output bottomlines of row r and the toplines of row r+1
> // if the latter do not span the whole tabular
> @@ -3081,8 +3081,8 @@ void Tabular::TeXCellPostamble(otexstream & os, idx_type cell,
>
> void Tabular::TeXLongtableHeaderFooter(otexstream & os,
> OutputParams const & runparams,
> - list<col_type> columns,
> - list<col_type> logical_columns) const
> + list<col_type> const & columns,
> + list<col_type> const & logical_columns) const
> {
> if (!is_long_tabular)
> return;
> @@ -3164,7 +3164,7 @@ bool Tabular::isValidRow(row_type row) const
>
> void Tabular::TeXRow(otexstream & os, row_type row,
> OutputParams const & runparams,
> - list<col_type> columns, list<col_type> logical_columns) const
> + list<col_type> const & columns, list<col_type> const & logical_columns) const
> {
> //output the top line
> TeXTopHLine(os, row, columns, logical_columns);
> diff --git a/src/insets/InsetTabular.h b/src/insets/InsetTabular.h
> index 84b9ae4..4dba557 100644
> --- a/src/insets/InsetTabular.h
> +++ b/src/insets/InsetTabular.h
> @@ -923,8 +923,8 @@ public:
> ///
> bool isValidRow(row_type const row) const;
> ///
> - void TeXRow(otexstream &, row_type const row,
> - OutputParams const &, std::list<col_type>, std::list<col_type>) const;
> + void TeXRow(otexstream &, row_type const row, OutputParams const &,
> + std::list<col_type> const &, std::list<col_type> const &) const;
>
> /// change associated Buffer
> void setBuffer(Buffer & buffer);
> @@ -982,19 +982,19 @@ private:
> ///
> // helper function for LaTeX
> ///
> - void TeXTopHLine(otexstream &, row_type row, std::list<col_type>,
> - std::list<col_type>) const;
> + void TeXTopHLine(otexstream &, row_type row, std::list<col_type> const &,
> + std::list<col_type> const &) const;
> ///
> - void TeXBottomHLine(otexstream &, row_type row, std::list<col_type>,
> - std::list<col_type>) const;
> + void TeXBottomHLine(otexstream &, row_type row, std::list<col_type> const &,
> + std::list<col_type> const &) const;
> ///
> void TeXCellPreamble(otexstream &, idx_type cell, bool & ismulticol, bool & ismultirow,
> bool const bidi) const;
> ///
> void TeXCellPostamble(otexstream &, idx_type cell, bool ismulticol, bool ismultirow) const;
> ///
> - void TeXLongtableHeaderFooter(otexstream &, OutputParams const &, std::list<col_type>,
> - std::list<col_type>) const;
> + void TeXLongtableHeaderFooter(otexstream &, OutputParams const &, std::list<col_type> const &,
> + std::list<col_type> const &) const;
>
> }; // Tabular
>
More information about the lyx-devel
mailing list