diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-11-06 17:50:26 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-11-06 17:50:26 +0100 |
commit | b1336faa48bee2cdb7ef0486a5a4faa5c74f4fa7 (patch) | |
tree | a86ee9bbd505b68d57a189418df152d48a1e852d /inc/ABRTException.h | |
parent | 3a62ede25114452938acb8e1a67006633b139efc (diff) | |
download | abrt-b1336faa48bee2cdb7ef0486a5a4faa5c74f4fa7.tar.gz abrt-b1336faa48bee2cdb7ef0486a5a4faa5c74f4fa7.tar.xz abrt-b1336faa48bee2cdb7ef0486a5a4faa5c74f4fa7.zip |
make exception handling lighter
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'inc/ABRTException.h')
-rw-r--r-- | inc/ABRTException.h | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/inc/ABRTException.h b/inc/ABRTException.h index 730faf3b..173f45fc 100644 --- a/inc/ABRTException.h +++ b/inc/ABRTException.h @@ -3,33 +3,40 @@ #include <string> -typedef enum {EXCEP_UNKNOW, - EXCEP_DD_OPEN, - EXCEP_DD_LOAD, - EXCEP_DD_SAVE, - EXCEP_DD_DELETE, - EXCEP_DL, - EXCEP_PLUGIN, - EXCEP_ERROR, - EXCEP_FATAL} abrt_exception_t; +typedef enum { + EXCEP_UNKNOW, + EXCEP_DD_OPEN, + EXCEP_DD_LOAD, + EXCEP_DD_SAVE, + EXCEP_DD_DELETE, + EXCEP_DL, + EXCEP_PLUGIN, + EXCEP_ERROR, + EXCEP_FATAL, +} abrt_exception_t; -class CABRTException : public std::exception +/* std::exception is a class with virtual members. + * deriving from it makes our ctor/dtor much more heavy, + * and those are inlined in every throw and catch site! + */ +class CABRTException /*: public std::exception*/ { private: std::string m_sWhat; abrt_exception_t m_Type; + public: - virtual ~CABRTException() throw() {} - CABRTException(const abrt_exception_t& pType, const char* pWhat) : + /* virtual ~CABRTException() throw() {} */ + CABRTException(abrt_exception_t pType, const char* pWhat) : m_sWhat(pWhat), m_Type(pType) {} - CABRTException(const abrt_exception_t& pType, const std::string& pWhat) : + CABRTException(abrt_exception_t pType, const std::string& pWhat) : m_sWhat(pWhat), m_Type(pType) {} abrt_exception_t type() { return m_Type; } - std::string what() { return m_sWhat; } + const char* what() const { return m_sWhat.c_str(); } }; -#endif /* ABRTEXCEPTION_H_ */ +#endif |