diff --git a/src/mdn/MDNHelper.cpp b/src/mdn/MDNHelper.cpp index 62028a12..640cda45 100644 --- a/src/mdn/MDNHelper.cpp +++ b/src/mdn/MDNHelper.cpp @@ -100,7 +100,7 @@ receivedMDNInfos MDNHelper::getReceivedMDN(const ref msg) const bool MDNHelper::needConfirmation(const ref msg) { - const header* hdr = msg->getHeader(); + ref hdr = msg->getHeader(); // No "Return-Path" field if (!hdr->hasField(fields::RETURN_PATH)) diff --git a/src/messaging/imap/IMAPMessage.cpp b/src/messaging/imap/IMAPMessage.cpp index 97aa2d28..92ec675f 100644 --- a/src/messaging/imap/IMAPMessage.cpp +++ b/src/messaging/imap/IMAPMessage.cpp @@ -400,7 +400,7 @@ void IMAPMessage::extract(const part* p, utility::outputStream& os, if (p != NULL) { - const IMAPpart* currentPart = static_cast (p); + weak_ref currentPart = static_cast (p); std::vector numbers; numbers.push_back(currentPart->getNumber()); diff --git a/tests/utility/smartPtrTest.cpp b/tests/utility/smartPtrTest.cpp index 44b634a6..9a7eb539 100644 --- a/tests/utility/smartPtrTest.cpp +++ b/tests/utility/smartPtrTest.cpp @@ -70,9 +70,6 @@ namespace assert_true("6", r1 == vmime::null); assert_true("7", vmime::null == r1); assert_eq("8", static_cast (0), r1.get()); - - const A* p = r1; - assert_eq("9", static_cast (0), p); } void testRefCounting() diff --git a/vmime/utility/smartPtr.hpp b/vmime/utility/smartPtr.hpp index c20d4c06..2ef60692 100644 --- a/vmime/utility/smartPtr.hpp +++ b/vmime/utility/smartPtr.hpp @@ -88,7 +88,8 @@ public: // Access to wrapped object - operator const T*() const { return m_ptr; } +// operator const T*() const { return m_ptr; } + operator const void*() const { return m_ptr; } T& operator *() { return *m_ptr; } const T& operator *() const { return *m_ptr; } @@ -364,7 +365,8 @@ public: // Access to wrapped object - operator const T*() const { return m_ptr; } +// operator const T*() const { return m_ptr; } + operator const void*() const { return m_ptr; } T& operator *() { return *m_ptr; } const T& operator *() const { return *m_ptr; } @@ -375,6 +377,9 @@ public: const T* const get() const { return m_ptr; } T* const get() { return m_ptr; } + const bool operator !() const { return m_ptr == NULL; } + + // dynamic_cast template weak_ref dynamicCast() const