[prev in list] [next in list] [prev in thread] [next in thread]
List: kwrite-devel
Subject: [Bug 89042] while pressing "del" key kate crashes (crash, bt)
From: Dominik Haumann <dhdev () gmx ! de>
Date: 2006-06-25 21:01:06
Message-ID: 20060625210106.26919.qmail () ktown ! kde ! org
[Download RAW message or body]
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=89042
------- Additional Comments From dhdev gmx de 2006-06-25 23:01 -------
SVN commit 554957 by dhaumann:
forward port: SVN commit 554198 by kling:
Remove nodes from `markedForDeleting' when deleting them now.
Fixes issues with cleanupUnneededNodes() working on dangling pointers.
CCBUG: 89042
CCBUG: 103648
M +17 -5 katecodefoldinghelpers.cpp
--- trunk/KDE/kdelibs/kate/part/katecodefoldinghelpers.cpp #554956:554957
@ -558,7 +558,9 @
uint endCol=node->endCol;
// removes + deletes
- delete parent->takeChild(mypos);
+ KateCodeFoldingNode *child = parent->takeChild(mypos);
+ markedForDeleting.removeAll(child);
+ delete child;
if ((type>0) && (endLineValid))
correctEndings(-type, parent, line+endLineRel/*+1*/,endCol, mypos); // why the \
hell did I add a +1 here ? @ -582,7 +584,11 @
// removes + deletes
int i = parent->findChild (node);
if (i >= 0)
- delete parent->takeChild (i);
+ {
+ KateCodeFoldingNode *child = parent->takeChild(i);
+ markedForDeleting.removeAll(child);
+ delete child;
+ }
return true;
}
@ -597,7 +603,9 @
node->endLineValid = true;
node->endLineRel = parent->child(i)->startLineRel - node->startLineRel;
- delete parent->takeChild(i);
+ KateCodeFoldingNode *child = parent->takeChild(i);
+ markedForDeleting.removeAll(child);
+ delete child;
count = i-mypos-1;
if (count > 0)
@ -829,7 +837,9 @
node->endLineValid = true;
node->endLineRel = getStartLine(parent->child(i))-line;
node->endCol = parent->child(i)->endCol;
- delete parent->takeChild(i);
+ KateCodeFoldingNode *child = parent->takeChild(i);
+ markedForDeleting.removeAll( child );
+ delete child;
break;
}
}
@ -905,7 +915,9 @
count = node->childCount() - i - 1;
newNode->endLineValid = true;
newNode->endLineRel = line - getStartLine(node->child(i));
- delete node->takeChild(i);
+ KateCodeFoldingNode *child = node->takeChild(i);
+ markedForDeleting.removeAll( child );
+ delete child;
break;
}
}
_______________________________________________
KWrite-Devel mailing list
KWrite-Devel@kde.org
https://mail.kde.org/mailman/listinfo/kwrite-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic