diff --git a/Data/include/Poco/Data/TypeHandler.h b/Data/include/Poco/Data/TypeHandler.h index 20e99174b..f49f3fdd7 100644 --- a/Data/include/Poco/Data/TypeHandler.h +++ b/Data/include/Poco/Data/TypeHandler.h @@ -1822,8 +1822,8 @@ public: static void extract(std::size_t pos, Poco::AutoPtr& obj, const Poco::AutoPtr& defVal, AbstractExtractor* pExt) { poco_assert_dbg (pExt != 0); - if (!obj) - obj = new T(); + + obj = Poco::AutoPtr(new T()); if (defVal) TypeHandler::extract(pos, *obj, *defVal, pExt); else @@ -1864,8 +1864,8 @@ public: static void extract(std::size_t pos, Poco::SharedPtr& obj, const Poco::SharedPtr& defVal, AbstractExtractor* pExt) { poco_assert_dbg (pExt != 0); - if (!obj) - obj = new T(); + + obj = Poco::SharedPtr(new T()); if (defVal) TypeHandler::extract(pos, *obj, *defVal, pExt); else