From 783310dc16261d590ca794382254987b031a068b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20B=C3=A1lint=20Misius?= Date: Mon, 8 Apr 2019 19:18:54 +0200 Subject: [PATCH] Fix a few exceptions returning pointers to temporaries in what() LocalBrowserModelException and GameModelException returned pointers to data owned by temporaries in what(). Solution: don't create a temporary in what(), store the ByteString version of the error message in the exception. --- src/gui/game/GameModelException.h | 6 +++--- src/gui/localbrowser/LocalBrowserModelException.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gui/game/GameModelException.h b/src/gui/game/GameModelException.h index 309a3f63c..c7fdcdc8a 100644 --- a/src/gui/game/GameModelException.h +++ b/src/gui/game/GameModelException.h @@ -5,12 +5,12 @@ #include struct GameModelException: public exception { - String message; + ByteString message; public: - GameModelException(String message_): message(message_) {} + GameModelException(String message_): message(message_.ToUtf8()) {} const char * what() const throw() override { - return message.ToUtf8().c_str(); + return message.c_str(); } ~GameModelException() throw() {} }; diff --git a/src/gui/localbrowser/LocalBrowserModelException.h b/src/gui/localbrowser/LocalBrowserModelException.h index 705173b00..7851d1e61 100644 --- a/src/gui/localbrowser/LocalBrowserModelException.h +++ b/src/gui/localbrowser/LocalBrowserModelException.h @@ -5,10 +5,10 @@ #include class LocalBrowserModelException { - String message; + ByteString message; public: - LocalBrowserModelException(String message_): message(message_) {}; - const char * what() const throw() { return message.ToUtf8().c_str(); }; + LocalBrowserModelException(String message_): message(message_.ToUtf8()) {}; + const char * what() const throw() { return message.c_str(); }; ~LocalBrowserModelException() throw() {}; };