Summary: | Crash in TOC | ||
---|---|---|---|
Product: | [Applications] calligrawords | Reporter: | Sebastian Sauer <mail> |
Component: | opendocument | Assignee: | T Zachmann <t.zachmann> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Sebastian Sauer
2011-02-04 20:18:02 UTC
That happens btw if I load the ODF 1.1 specs and close words (so crash on exit). ...ond if I do diff --git a/libs/flake/KoTosContainerModel.cpp b/libs/flake/KoTosContainerModel.cpp index 831228a..bd52c8c 100644 --- a/libs/flake/KoTosContainerModel.cpp +++ b/libs/flake/KoTosContainerModel.cpp @@ -45,7 +45,7 @@ void KoTosContainerModel::add(KoShape *shape) void KoTosContainerModel::remove(KoShape *shape) { - Q_ASSERT(shape == m_textShape); + //Q_ASSERT(shape == m_textShape); if (shape == m_textShape) { m_textShape = 0; } I earn Application: Words (words), signal: Segmentation fault [Current thread is 1 (Thread 0x7f4eb68ab7a0 (LWP 32239))] Thread 2 (Thread 0x7f4e9557d710 (LWP 32240)): #0 0x00007f4eb034ae13 in select () from /lib64/libc.so.6 #1 0x00007f4eb13fd27d in QProcessManager::run (this=0x7f4eb174ff80) at io/qprocess_unix.cpp:245 #2 0x00007f4eb1331a1e in QThreadPrivate::start (arg=0x7f4eb174ff80) at thread/qthread_unix.cpp:285 #3 0x00007f4eaf6749a3 in ?? () from /usr/lib64/libGL.so.1 #4 0x00007f4eb10a2a4f in start_thread () from /lib64/libpthread.so.0 #5 0x00007f4eb035182d in clone () from /lib64/libc.so.6 #6 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f4eb68ab7a0 (LWP 32239)): [KCrash Handler] #6 0x00007f4eb5848a0e in KoShape::d_func (this=0x0) at /home/kdab/src/kde/calligra/libs/flake/KoShape.h:1077 #7 0x00007f4eb583efdc in KoShape::setParent (this=0x0, parent=0x0) at /home/kdab/src/kde/calligra/libs/flake/KoShape.cpp:561 #8 0x00007f4eb584f239 in KoShapeContainer::~KoShapeContainer (this=0x4083cb0, __in_chrg=<value optimized out>) at /home/kdab/src/kde/calligra/libs/flake/KoShapeContainer.cpp:64 #9 0x00007f4eb58c1846 in KoTosContainer::~KoTosContainer (this=0x4083cb0, __in_chrg=<value optimized out>) at /home/kdab/src/kde/calligra/libs/flake/KoTosContainer.cpp:49 #10 0x00007f4eb5820ad8 in KoPathShape::~KoPathShape (this=0x4083cb0, __in_chrg=<value optimized out>) at /home/kdab/src/kde/calligra/libs/flake/KoPathShape.cpp:104 #11 0x00007f4eb587741c in KoParameterShape::~KoParameterShape (this=0x4083cb0, __in_chrg=<value optimized out>) at /home/kdab/src/kde/calligra/libs/flake/KoParameterShape.cpp:37 #12 0x00007f4e9ade1f2a in EllipseShape::~EllipseShape (this=0x4083cb0, __in_chrg=<value optimized out>) at /home/kdab/src/kde/calligra/plugins/pathshapes/ellipse/EllipseShape.cpp:50 #13 0x00007f4e9ade1f5c in EllipseShape::~EllipseShape (this=0x4083cb0, __in_chrg=<value optimized out>) at /home/kdab/src/kde/calligra/plugins/pathshapes/ellipse/EllipseShape.cpp:52 #14 0x00007f4ea1557917 in KWFrameSet::~KWFrameSet (this=0x4083d50, __in_chrg=<value optimized out>) at /home/kdab/src/kde/calligra/words/part/frames/KWFrameSet.cpp:36 #15 0x00007f4ea15579f0 in KWFrameSet::~KWFrameSet (this=0x4083d50, __in_chrg=<value optimized out>) at /home/kdab/src/kde/calligra/words/part/frames/KWFrameSet.cpp:37 #16 0x00007f4ea1511530 in qDeleteAll<QList<KWFrameSet*>::const_iterator> (begin=..., end=...) at /usr/include/QtCore/qalgorithms.h:322 #17 0x00007f4ea150f8db in qDeleteAll<QList<KWFrameSet*> > (c=...) at /usr/include/QtCore/qalgorithms.h:330 #18 0x00007f4ea1507da2 in KWDocument::~KWDocument (this=0x89a1c0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /home/kdab/src/kde/calligra/words/part/KWDocument.cpp:184 #19 0x00007f4ea1507e96 in KWDocument::~KWDocument (this=0x89a1c0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /home/kdab/src/kde/calligra/words/part/KWDocument.cpp:185 #20 0x00007f4eb61d6a19 in KoMainWindow::setRootDocument (this=0x78dcf0, doc=0x0) at /home/kdab/src/kde/calligra/libs/main/KoMainWindow.cpp:497 #21 0x00007f4eb61da6ab in KoMainWindow::closeEvent (this=0x78dcf0, e=0x7fffa15f55d0) at /home/kdab/src/kde/calligra/libs/main/KoMainWindow.cpp:1058 #22 0x00007f4eb22f285e in QWidget::event(QEvent*) () from /usr/lib64/libQtGui.so.4 #23 0x00007f4eb26b8dcb in QMainWindow::event(QEvent*) () from /usr/lib64/libQtGui.so.4 #24 0x00007f4eb2fb8463 in KXmlGuiWindow::event(QEvent*) () from /usr/lib64/libkdeui.so.5 #25 0x00007f4eb22a0cd4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4 #26 0x00007f4eb22a91ca in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4 #27 0x00007f4eb2f0cec6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5 #28 0x00007f4eb141ce2c in QCoreApplication::notifyInternal (this=0x7fffa15f6030, receiver=0x78dcf0, event=0x7fffa15f55d0) at kernel/qcoreapplication.cpp:732 #29 0x00007f4eb22ed231 in QWidgetPrivate::close_helper(QWidgetPrivate::CloseMode) () from /usr/lib64/libQtGui.so.4 #30 0x00007f4eb23205e6 in QApplication::x11ClientMessage(QWidget*, _XEvent*, bool) () from /usr/lib64/libQtGui.so.4 #31 0x00007f4eb231ea6b in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/libQtGui.so.4 #32 0x00007f4eb2346212 in ?? () from /usr/lib64/libQtGui.so.4 #33 0x00007f4eabbe9a93 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #34 0x00007f4eabbea270 in ?? () from /usr/lib64/libglib-2.0.so.0 #35 0x00007f4eabbea510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #36 0x00007f4eb1447a8f in QEventDispatcherGlib::processEvents (this=0x649780, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422 #37 0x00007f4eb2345eae in ?? () from /usr/lib64/libQtGui.so.4 #38 0x00007f4eb141c262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #39 0x00007f4eb141c475 in QEventLoop::exec (this=0x7fffa15f5fd0, flags=...) at kernel/qeventloop.cpp:201 #40 0x00007f4eb14208db in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009 #41 0x00007f4eb64d7875 in kdemain (argc=2, argv=0x7fffa15f61f8) at /home/kdab/src/kde/calligra/words/part/main.cpp:38 #42 0x0000000000400966 in main (argc=2, argv=0x7fffa15f61f8) at /home/kdab/src/build/calligra/words/part/words_dummy.cpp:3 assigned to Zagge cause diff --git a/libs/flake/KoTosContainerModel.cpp b/libs/flake/KoTosContainerModel.cpp index 831228a..bd52c8c 100644 --- a/libs/flake/KoTosContainerModel.cpp +++ b/libs/flake/KoTosContainerModel.cpp @@ -45,7 +45,7 @@ void KoTosContainerModel::add(KoShape *shape) void KoTosContainerModel::remove(KoShape *shape) { - Q_ASSERT(shape == m_textShape); + //Q_ASSERT(shape == m_textShape); if (shape == m_textShape) { m_textShape = 0; } fixes it and git blame libs/flake/KoTosContainer.cpp says it's Zagge's code :) Git commit 7bcabb955b4726248483aa96a7aa32a428f3dfb2 by Thorsten Zachmann. Committed on 05/02/11 at 05:17. Pushed by zachmann into branch 'master'. Fix Bug 265449 Crash in TOS Thanks to Sebastian for pointing out the problem. I even found an additional problem when debugging it. The remove function is called twice which results in the text shape to be already 0. BUG: 265449 M +4 -2 libs/flake/KoTosContainerModel.cpp http://commits.kde.org/calligra/7bcabb955b4726248483aa96a7aa32a428f3dfb2 |