aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mdn/MDNHelper.cpp2
-rw-r--r--src/messaging/imap/IMAPMessage.cpp2
-rw-r--r--tests/utility/smartPtrTest.cpp3
-rw-r--r--vmime/utility/smartPtr.hpp9
4 files changed, 9 insertions, 7 deletions
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 <const message> msg)
const bool MDNHelper::needConfirmation(const ref <const message> msg)
{
- const header* hdr = msg->getHeader();
+ ref <const header> 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 <const IMAPpart*>(p);
+ weak_ref <const IMAPpart> currentPart = static_cast <const IMAPpart*>(p);
std::vector <int> 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 <A*>(0), r1.get());
-
- const A* p = r1;
- assert_eq("9", static_cast <A*>(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 <class U>
weak_ref <U> dynamicCast() const