diff --git a/include/boost/exception/exception.hpp b/include/boost/exception/exception.hpp index fd516dd..2ca2790 100644 --- a/include/boost/exception/exception.hpp +++ b/include/boost/exception/exception.hpp @@ -75,8 +75,8 @@ boost void release() { - if( px_ ) - px_->release(); + if( px_ && px_->release() ) + px_=0; } }; } @@ -150,7 +150,7 @@ boost virtual shared_ptr get( type_info_ const & ) const = 0; virtual void set( shared_ptr const &, type_info_ const & ) = 0; virtual void add_ref() const = 0; - virtual void release() const = 0; + virtual bool release() const = 0; virtual refcount_ptr clone() const = 0; protected: