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.
This commit is contained in:
Tamás Bálint Misius 2019-04-08 19:18:54 +02:00
parent 2ba0f70efd
commit 783310dc16
No known key found for this signature in database
GPG Key ID: 5B472A12F6ECA9F2
2 changed files with 6 additions and 6 deletions

View File

@ -5,12 +5,12 @@
#include <exception>
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() {}
};

View File

@ -5,10 +5,10 @@
#include <exception>
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() {};
};