Summary: | Ignore thread doesn't mark ignored mails as read on IMAP | ||
---|---|---|---|
Product: | [Applications] kmail | Reporter: | Diego Elio Pettenò <flameeyes> |
Component: | IMAP | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Diego Elio Pettenò
2006-10-12 00:34:12 UTC
SVN commit 598502 by okellogg: removeAllAssociations(): Do not increment the iterator when positioned on an association. Remove the association from m_List unconditionally. BUG:135479 M +4 -0 ChangeLog M +1 -1 VERSION M +7 -6 umbrello/umlcanvasobject.cpp --- branches/KDE/3.5/kdesdk/umbrello/ChangeLog #598501:598502 @@ -1,3 +1,7 @@ +Version 1.5.51 +* This is an interim release that fixes a serious regression in version 1.5.5 + which is detailed at http://bugs.kde.org/135749 (Crash when opening a document) + Version 1.5.5 * PHP5 generator creates stub methods for all interfaces a class implements (C. Brunsdon) --- branches/KDE/3.5/kdesdk/umbrello/VERSION #598501:598502 @@ -1 +1 @@ -1.5.5 +1.5.51 --- branches/KDE/3.5/kdesdk/umbrello/umbrello/umlcanvasobject.cpp #598501:598502 @@ -95,17 +95,18 @@ void UMLCanvasObject::removeAllAssociations() { UMLObject *o; - for (UMLObjectListIt oit(m_List); (o = oit.current()) != NULL; ++oit) { - if (o->getBaseType() != Uml::ot_Association) + for (UMLObjectListIt oit(m_List); (o = oit.current()) != NULL; ) { + if (o->getBaseType() != Uml::ot_Association) { + ++oit; continue; + } UMLAssociation *assoc = static_cast<UMLAssociation*>(o); //umldoc->slotRemoveUMLObject(assoc); UMLObject* objA = assoc->getObject(Uml::A); UMLObject* objB = assoc->getObject(Uml::B); UMLCanvasObject *roleAObj = dynamic_cast<UMLCanvasObject*>(objA); if (roleAObj) { - if (roleAObj->removeAssociation(assoc) < 0) - m_List.remove(assoc); + roleAObj->removeAssociation(assoc); } else if (objA) kdDebug() << "UMLCanvasObject::removeAllAssociations(" << m_Name << "): objA " << objA->getName() << " is not a UMLCanvasObject" @@ -115,8 +116,7 @@ << "): objA is NULL" << endl; UMLCanvasObject *roleBObj = dynamic_cast<UMLCanvasObject*>(objB); if (roleBObj) { - if (roleBObj->removeAssociation(assoc) < 0) - m_List.remove(assoc); + roleBObj->removeAssociation(assoc); } else if (objB) kdDebug() << "UMLCanvasObject::removeAllAssociations(" << m_Name << "): objB " << objB->getName() << " is not a UMLCanvasObject" @@ -124,6 +124,7 @@ else kdDebug() << "UMLCanvasObject::removeAllAssociations(" << m_Name << "): objB is NULL" << endl; + m_List.remove(assoc); //delete assoc; should not do this here, we are only a CLIENT of the assoc } } Ouch! Sorry, I got the bug number wrong. The comment #1 was intended for bug 135749. |