*/
Exception::Exception(void)
{
+ m_Message = NULL;
}
/**
*/
Exception::Exception(const char *message)
{
+ m_Message = NULL;
SetMessage(message);
}
+/**
+ * Destructor for the Exception class. Must be virtual for RTTI to work.
+ */
+Exception::~Exception(void) throw()
+{
+ Memory::Free(m_Message);
+}
+
/**
* Retrieves the description for the exception.
*
*/
void Exception::SetMessage(const char *message)
{
- if (m_Message)
- delete m_Message;
-
+ Memory::Free(m_Message);
m_Message = Memory::StrDup(message);
}
class I2_BASE_API Exception : exception
{
private:
- const char *m_Message;
+ char *m_Message;
protected:
void SetMessage(const char *message);
public:
Exception(void);
Exception(const char *message);
-
- /**
- * Destructor for the Exception class. Must be virtual for RTTI to work.
- */
- virtual ~Exception(void) throw()
- {
- delete m_Message;
- }
+ virtual ~Exception(void) throw();
const char *GetMessage(void) const;