Fix implementation of what() method in Exception class 24/25024/2
authorAdam Malinowski <a.malinowsk2@partner.samsung.com>
Fri, 25 Jul 2014 12:56:46 +0000 (14:56 +0200)
committerZofia Abramowska <z.abramowska@samsung.com>
Fri, 25 Jul 2014 16:30:04 +0000 (09:30 -0700)
Change-Id: Ib0259dbd85bc5526b474396ac82b819f0b03b54d

src/common/exceptions/Exception.h

index 92546b2..b709060 100644 (file)
@@ -36,13 +36,17 @@ public:
     virtual ~Exception() = default;
 
     virtual const char *what(void) const noexcept {
-        return (message() + " From: " + m_backtrace).c_str();
+        if(m_whatMessage.empty()) {
+            m_whatMessage = message() + " From: " + m_backtrace;
+        }
+        return m_whatMessage.c_str();
     }
 
     virtual const std::string message(void) const = 0;
 
 private:
     std::string m_backtrace;
+    mutable std::string m_whatMessage;
 };
 
 } /* namespace Cynara */