diff --git a/vmime/utility/smartPtr.hpp b/vmime/utility/smartPtr.hpp index 9fb8315b..c52752ed 100644 --- a/vmime/utility/smartPtr.hpp +++ b/vmime/utility/smartPtr.hpp @@ -277,7 +277,14 @@ public: if (m_ptr) m_ptr->getRefManager()->addStrong(); +#if defined(_MSC_VER) // VC++ compiler bug (stack overflow) + ref r; + r.m_ptr = m_ptr; + return r; +#else return ref ::fromPtrImpl(m_ptr); +#endif // defined(_MSC_VER) + } // Copy