[LyX/master] Do not return copies of string members

Jean-Marc Lasgouttes lasgouttes at lyx.org
Fri May 5 17:28:59 UTC 2023


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.
    
    ../../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:
 	///


More information about the lyx-cvs mailing list