[LyX/master] Do not return copies of string members
Enrico Forestieri
forenr at lyx.org
Tue May 9 20:08:41 UTC 2023
On Fri, May 05, 2023 at 07:28:59PM +0200, Jean-Marc Lasgouttes wrote:
>
>commit 3ae5d6bdec1df23cc0d848b2d8bf6b0932eeee3b
>Author: Jean-Marc Lasgouttes <lasgouttes at lyx.org>
>Date: Fri May 5 20:35:23 2023 +0200
>
> Do not return copies of string members
>
> This fixes the g++ 12 warnings below.
After this commit my cygwin build crashes badly at startup. I can't even
get a backtrace. What is strange is that a native Windows build works
fine, instead. Both builds use the same version of gcc:
$ g++ -dumpfullversion
11.3.0
$ x86_64-w64-mingw32-g++ -dumpfullversion
11.3.0
I am baffled.
> ../../master/src/Converter.cpp:714:55: warning: possibly dangling
> reference to a temporary [-Wdangling-reference]
> 714 | Mover const & mover = getMover(conv.to());
> | ^~~~~
> ../../master/src/Converter.cpp:714:71: note: the temporary was destroyed at the end of the full expression ‘lyx::getMover(lyx::Converter::to() const())’
> 714 | Mover const & mover = getMover(conv.to());
> | ~~~~~~~~^~~~~~~~~~~
> ../../master/src/Converter.cpp:786:39: warning: possibly dangling reference to a temporary [-Wdangling-reference]
> 786 | Mover const & mover = getMover(conv.from());
> | ^~~~~
> ../../master/src/Converter.cpp:786:55: note: the temporary was destroyed at the end of the full expression ‘lyx::getMover(lyx::Converter::from() const())’
> 786 | Mover const & mover = getMover(conv.from());
>---
> src/Converter.h | 18 +++++++++---------
> 1 files changed, 9 insertions(+), 9 deletions(-)
>
>diff --git a/src/Converter.h b/src/Converter.h
>index 091dbcd..9e8249d 100644
>--- a/src/Converter.h
>+++ b/src/Converter.h
>@@ -52,15 +52,15 @@ public:
> ///
> void readFlags();
> ///
>- std::string const from() const { return from_; }
>+ std::string const & from() const { return from_; }
> ///
>- std::string const to() const { return to_; }
>+ std::string const & to() const { return to_; }
> ///
>- std::string const command() const { return command_; }
>+ std::string const & command() const { return command_; }
> ///
> void setCommand(std::string const & command);
> ///
>- std::string const flags() const { return flags_; }
>+ std::string const & flags() const { return flags_; }
> ///
> void setFlags(std::string const & flags) { flags_ = flags; }
> ///
>@@ -74,7 +74,7 @@ public:
> ///
> bool latex() const { return latex_; }
> ///
>- std::string const latex_flavor() const { return latex_flavor_; }
>+ std::string const & latex_flavor() const { return latex_flavor_; }
> ///
> bool docbook() const { return docbook_; }
> ///
>@@ -84,13 +84,13 @@ public:
> ///
> bool nice() const { return nice_; }
> ///
>- std::string const result_dir() const { return result_dir_; }
>+ std::string const & result_dir() const { return result_dir_; }
> ///
>- std::string const result_file() const { return result_file_; }
>+ std::string const & result_file() const { return result_file_; }
> ///
>- std::string const parselog() const { return parselog_; }
>+ std::string const & parselog() const { return parselog_; }
> ///
>- std::string const hyperref_driver() const { return href_driver_; }
>+ std::string const & hyperref_driver() const { return href_driver_; }
>
> private:
> ///
>--
>lyx-cvs mailing list
>lyx-cvs at lists.lyx.org
>http://lists.lyx.org/mailman/listinfo/lyx-cvs
--
Enrico
More information about the lyx-devel
mailing list