diff --git a/get_deleter_test.cpp b/get_deleter_test.cpp index 2b84a2d..94d6dd4 100644 --- a/get_deleter_test.cpp +++ b/get_deleter_test.cpp @@ -36,6 +36,21 @@ struct X int main() { + { + boost::shared_ptr p; + + BOOST_TEST(boost::get_deleter(p) == 0); + BOOST_TEST(boost::get_deleter(p) == 0); + BOOST_TEST(boost::get_deleter(p) == 0); + BOOST_TEST(boost::get_deleter(p) == 0); + BOOST_TEST(boost::get_deleter(p) == 0); + BOOST_TEST(boost::get_deleter(p) == 0); + BOOST_TEST(boost::get_deleter(p) == 0); + BOOST_TEST(boost::get_deleter(p) == 0); + BOOST_TEST(boost::get_deleter(p) == 0); + BOOST_TEST(boost::get_deleter(p) == 0); + } + { boost::shared_ptr p(new X); diff --git a/include/boost/detail/shared_count.hpp b/include/boost/detail/shared_count.hpp index a7eb08c..d3c010f 100644 --- a/include/boost/detail/shared_count.hpp +++ b/include/boost/detail/shared_count.hpp @@ -382,7 +382,7 @@ public: void * get_deleter(std::type_info const & ti) const { - return pi_->get_deleter(ti); + return pi_? pi_->get_deleter(ti): 0; } };