aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--vmime/utility/smartPtr.hpp7
1 files changed, 7 insertions, 0 deletions
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 <const T> r;
+ r.m_ptr = m_ptr;
+ return r;
+#else
return ref <const T>::fromPtrImpl(m_ptr);
+#endif // defined(_MSC_VER)
+
}
// Copy