MaildirMessageCache virtual calls (Was: C++/stl_deque problem)

Jerry Lundström <[email protected]> Mon, 11 Jul 2005 14:24:38 +0200
Newsgroups gmane.mail.imap.binc.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------080908010408010902010709
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

Jerry Lundström wrote:
> #5  0x4009d1d8 in __cxa_pure_virtual () at 
> ../../../../libstdc++-v3/libsupc++/pure.cc:50
> #6  0x080731f9 in Binc::MaildirMessageCache::clear (this=0x8084860) at 
> stl_deque.h:128

Nm found it and here is a small patch.

-- 
Jerry Lundström
Sektionen för IT och media, Stockholms universitet
+46 (0)8 16 19 99 / http://www.it.su.se

--------------080908010408010902010709
Content-Type: text/plain;
 name="bincimap-1.3.4-maildirmessage.cc-pure_virtual_calls.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="bincimap-1.3.4-maildirmessage.cc-pure_virtual_calls.patch"

Index: maildirmessage.cc
===================================================================
--- maildirmessage.cc	(revision 327)
+++ maildirmessage.cc	(working copy)
@@ -436,6 +436,13 @@
 //------------------------------------------------------------------------
 MaildirMessage::~MaildirMessage(void)
 {
+  close();
+
+  // Remove from cache otherwise MaildirMessageCache can call on
+  // non existing MaildirMessage objects.
+  MaildirMessageCache &cache = MaildirMessageCache::getInstance();
+  cache.removeStatus(this);
+
   delete customFlags;
 }
 

--------------080908010408010902010709--