From: Jani F. <j.f...@gm...> - 2009-11-30 17:14:13
|
Hi. I'm hunting for a bug that crashes Thorn. Steps to reproduce: Draw 2 segments, open both in notation, insert some notes to both staffs, move notes to up/down staff, hit undo. GDB Backtrace: #0 0x00000000009dbb31 in Rosegarden::NotationHLayout::layout (this=0x231eb70, i=..., startTime=3840, endTime=11520) at src/gui/editors/notation/NotationHLayout.cpp:1290 #1 0x00000000009db4d1 in Rosegarden::NotationHLayout::finishLayout ( this=0x231eb70, startTime=3840, endTime=11520) at src/gui/editors/notation/NotationHLayout.cpp:1231 #2 0x00000000009f5fef in Rosegarden::NotationScene::layout (this=0x2287f80, singleStaff=0x227f550, startTime=3840, endTime=11520) at src/gui/editors/notation/NotationScene.cpp:1257 #3 0x00000000009f3d0d in Rosegarden::NotationScene::checkUpdate ( this=0x2287f80) at src/gui/editors/notation/NotationScene.cpp:874 #4 0x00000000009f329e in Rosegarden::NotationScene::slotCommandExecuted ( this=0x2287f80) at src/gui/editors/notation/NotationScene.cpp:739 #5 0x00000000009f72a6 in Rosegarden::NotationScene::qt_metacall ( this=0x2287f80, _c=QMetaObject::InvokeMetaMethod, _id=12, _a=0x7fffffffae30) at src/gui/editors/notation/NotationScene.moc:106 #6 0x00007ffff64e5ddc in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #7 0x00000000005176cf in Rosegarden::CommandHistory::commandExecuted ( this=0x1871a90) at src/document/CommandHistory.moc:108 #8 0x00000000005165e2 in Rosegarden::CommandHistory::undo (this=0x1871a90) at src/document/CommandHistory.cpp:336 I commented out a parameter in NotationHLayout: Index: src/gui/editors/notation/NotationHLayout.cpp =================================================================== --- src/gui/editors/notation/NotationHLayout.cpp (revision 11350) +++ src/gui/editors/notation/NotationHLayout.cpp (working copy) @@ -1287,7 +1287,7 @@ NotationElementList::iterator from = bdi->second.basicData.start; NotationElementList::iterator to; - NOTATION_DEBUG << "NotationHLayout::layout(): starting bar " << barNo << ", x = " << barX << ", width = " << bdi->second.sizeData.idealWidth << ", time = " << (from == notes->end() ? -1 : (*from)->getViewAbsoluteTime()) << endl; + NOTATION_DEBUG << "NotationHLayout::layout(): starting bar " << barNo << ", x = " << barX << ", width = " << bdi->second.sizeData.idealWidth << ", time = " <</* (from == notes->end() ? -1 : (*from)->getViewAbsoluteTime()) <<*/ endl; BarDataList::iterator nbdi(bdi); if (++nbdi == barList.end()) { Now the bt changes: #0 0x000000000050de0e in Rosegarden::ViewElement::event (this=0x30) at src/base/ViewElement.h:43 #1 0x00000000009dc652 in Rosegarden::NotationHLayout::layout (this=0x1822e80, i=..., startTime=3840, endTime=11520) at src/gui/editors/notation/NotationHLayout.cpp:1393 #2 0x00000000009db4d1 in Rosegarden::NotationHLayout::finishLayout ( this=0x1822e80, startTime=3840, endTime=11520) at src/gui/editors/notation/NotationHLayout.cpp:1231 If someone (Chris?) could take a look at this, I'd appreciate it. -Jani |