From 3e84372a146b7db5ffc06226707912c90bfeeaf8 Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Thu, 20 Mar 2014 13:41:23 +0000 Subject: [PATCH] fixed: missing virtual dtor for XArch* classes --- src/lib/arch/XArch.h | 5 ++++- src/lib/arch/unix/XArchUnix.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/arch/XArch.h b/src/lib/arch/XArch.h index 043ef08b..8c86d074 100644 --- a/src/lib/arch/XArch.h +++ b/src/lib/arch/XArch.h @@ -55,6 +55,9 @@ string for that error code. */ class XArchEval { public: + XArchEval() { } + virtual ~XArchEval() _NOEXCEPT { } + virtual std::string eval() const = 0; }; @@ -63,7 +66,7 @@ class XArch : public std::runtime_error { public: XArch(XArchEval* adopted) : std::runtime_error(adopted->eval()) { delete adopted; } XArch(const std::string& msg) : std::runtime_error(msg) { } - ~XArch() _NOEXCEPT { } + virtual ~XArch() _NOEXCEPT { } }; // Macro to declare XArch derived types diff --git a/src/lib/arch/unix/XArchUnix.h b/src/lib/arch/unix/XArchUnix.h index 1ff00280..f9c76004 100644 --- a/src/lib/arch/unix/XArchUnix.h +++ b/src/lib/arch/unix/XArchUnix.h @@ -24,7 +24,7 @@ class XArchEvalUnix : public XArchEval { public: XArchEvalUnix(int error) : m_error(error) { } - virtual ~XArchEvalUnix() { } + virtual ~XArchEvalUnix() _NOEXCEPT { } virtual std::string eval() const;