Summary: | KWord crashed suddenly when writing | ||
---|---|---|---|
Product: | kword | Reporter: | Teemu Rytilahti <tpr> |
Component: | general | Assignee: | Thomas Zander <zander> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | kde-bugs, shetzl |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Teemu Rytilahti
2003-10-12 22:02:58 UTC
Well, it crashed again when it was laying on the bottom (minimized..) And the backtrace, if it helps: [New Thread 16384 (LWP 1844)] 0x4130fa66 in waitpid () from /lib/libpthread.so.0 #0 0x4130fa66 in waitpid () from /lib/libpthread.so.0 #1 0x407cca01 in KCrash::defaultCrashHandler(int) (sig=11) at kcrash.cpp:242 #2 0x4130e695 in __pthread_sighandler () from /lib/libpthread.so.0 #3 <signal handler called> #4 0x40ba8d6b in QFont::QFont(QFont const&) () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #5 0x41ca279c in KoTextFormat::font() const (this=0x854a550) at kotextformat.h:437 #6 0x41ca274c in KoTextFormat::pointSize() const (this=0x0) at kotextformat.h:166 #7 0x41f12685 in KoTextFormat::screenPointSize(KoZoomHandler const*) const ( this=0x854a550, zh=0x0) at kotextformat.cc:647 #8 0x41f128c6 in KoTextFormat::screenFont(KoZoomHandler const*) const ( this=0x854a550, zh=0x0) at kotextformat.cc:678 #9 0x41f232e5 in KoTextParag::drawParagStringInternal(QPainter&, QString const&, int, int, int, int, int, int, int, bool, KoTextFormat*, QMemArray<int> const&, QMemArray<int> const&, QColorGroup const&, bool, int, KoZoomHandler*, bool) ( this=0x826a5a0, painter=@0x85d9e78, s=@0xbfffdeb0, start=21, len=1, startX=479, lastY=0, baseLine=15, bw=11, h=21, drawSelections=false, format=0x854a550, selectionStarts=@0xbfffde80, selectionEnds=@0xbfffde70, cg=@0x0, rightToLeft=false, line=0, zh=0x8193c04, drawingShadow=false) at kotextparag.cc:831 #10 0x41f22f73 in KoTextParag::drawParagString(QPainter&, QString const&, int, int, int, int, int, int, int, bool, KoTextFormat*, QMemArray<int> const&, QMemArray<int> const&, QColorGroup const&, bool, int) (this=0x826a5a0, painter=@0x85d9e78, str=@0xbfffdeb0, start=21, len=1, startX=9586, lastY=-1073750736, baseLine=0, bw=0, h=0, drawSelections=false, format=0x854a550, selectionStarts=@0xbfffde80, selectionEnds=@0xbfffde70, cg=@0xbfffe600, rightToLeft=false, line=0) at kotextparag.cc:790 #11 0x41f2257c in KoTextParag::paintLines(QPainter&, QColorGroup const&, KoTextCursor*, bool, int, int, int, int) (this=0x826a5a0, painter=@0x85d9e78, cg=@0xbfffe600, cursor=0x0, drawSelections=false, clipx=0, clipy=0, clipw=10781, cliph=15141) at kotextparag.cc:672 #12 0x41f21aee in KoTextParag::paint(QPainter&, QColorGroup const&, KoTextCursor*, bool, int, int, int, int) (this=0x826a5a0, painter=@0x85d9e78, cg=@0xbfffe600, cursor=0x0, drawSelections=false, clipx=0, clipy=0, clipw=0, cliph=0) at kotextparag.cc:471 #13 0x41f2c59f in KoTextDocument::drawParagWYSIWYG(QPainter*, KoTextParag*, int, int, int, int, QPixmap*&, QColorGroup const&, KoZoomHandler*, bool, KoTextCursor*, bool, unsigned) (this=0x82b9830, p=0xbfffebd0, parag=0x826a5a0, cx=0, cy=0, cw=0, ch=0, doubleBuffer=@0xbfffe23c, cg=@0xbfffe600, zoomHandler=0x8193c04, drawCursor=false, cursor=0x0, resetChanged=true, drawingFlags=0) at kotextdocument.cc:423 #14 0x41f2b7c4 in KoTextDocument::drawWYSIWYG(QPainter*, int, int, int, int, QColorGroup const&, KoZoomHandler*, bool, bool, KoTextCursor*, bool, unsigned) ( this=0x82b9830, p=0xbfffebd0, cx=0, cy=0, cw=540, ch=758, cg=@0xbfffe600, zoomHandler=0x8193c04, onlyChanged=false, drawCursor=false, cursor=0x0, resetChanged=true, drawingFlags=1) at kotextdocument.cc:239 #15 0x41d09f19 in KWTextFrameSet::drawFrameContents(KWFrame*, QPainter*, QRect const&, QColorGroup const&, bool, bool, KWFrameSetEdit*, KWViewMode*) ( this=0x81dce50, theFrame=0x824cd70, painter=0xbfffebd0, r=@0xbfffe780, cg=@0xbfffe600, onlyChanged=false, resetChanged=true, edit=0x0, viewMode=0x8541a00) at kwtextframeset.cc:597 #16 0x41c99d9f in KWFrameSet::drawFrame(KWFrame*, QPainter*, QRect const&, QRect const&, QPoint const&, KWFrame*, QColorGroup const&, bool, bool, KWFrameSetEdit*, KWViewMode*, bool) (this=0x81dce50, frame=0x824cd70, painter=0xbfffebd0, fcrect=@0xbfffe780, outerCRect=@0xbfffe7e0, translationOffset=@0xbfffe720, settingsFrame=0xbfffe5e0, cg=@0xbfffead0, onlyChanged=false, resetChanged=true, edit=0x0, viewMode=0x8541a00, drawUnderlyingFrames=false) at kwframe.cc:1339 #17 0x41d09a85 in KWTextFrameSet::drawFrame(KWFrame*, QPainter*, QRect const&, QRect const&, QPoint const&, KWFrame*, QColorGroup const&, bool, bool, KWFrameSetEdit*, KWViewMode*, bool) (this=0x0, theFrame=0x824cd70, painter=0x0, fcrect=@0x0, crect=@0x0, translationOffset=@0x0, settingsFrame=0x0, cg=@0x0, onlyChanged=false, resetChanged=true, edit=0x0, viewMode=0x0, drawUnderlyingFrames=false) at kwtextframeset.cc:532 #18 0x41c99a85 in KWFrameSet::drawFrameAndBorders(KWFrame*, QPainter*, QRect const&, QColorGroup const&, bool, bool, KWFrameSetEdit*, KWViewMode*, KWFrame*, bool) (this=0x81dce50, frame=0x824cd70, painter=0xbfffebd0, crect=@0x0, cg=@0x0, onlyChanged=false, resetChanged=true, edit=0x0, viewMode=0x8541a00, settingsFrame=0x824cd70, drawUnderlyingFrames=true) at kwframe.cc:1232 #19 0x41c994b9 in KWFrameSet::drawContents(QPainter*, QRect const&, QColorGroup const&, bool, bool, KWFrameSetEdit*, KWViewMode*) (this=0x81dce50, p=0xbfffebd0, crect=@0xbfffeae0, cg=@0xbfffead0, onlyChanged=false, resetChanged=true, edit=0x0, viewMode=0x8541a00) at kwframe.cc:1153 #20 0x41d094b1 in KWTextFrameSet::drawContents(QPainter*, QRect const&, QColorGroup const&, bool, bool, KWFrameSetEdit*, KWViewMode*) (this=0x81dce50, p=0xbfffebd0, crect=@0xbfffeae0, cg=@0x0, edit=0x0, viewMode=0x8541a00) at kwtextframeset.cc:441 #21 0x41cb3b97 in KWDocument::paintContent(QPainter&, QRect const&, bool, double, double) (this=0x8193b48, painter=@0xbfffebd0, _rect=@0xbfffeaa0, transparent=false, zoomX=1, zoomY=1) at kwdoc.cc:2675 #22 0x4177fed7 in KoDocument::paintEverything(QPainter&, QRect const&, bool, KoView*, double, double) (this=0x8193b48, painter=@0xbfffebd0, rect=@0xbfffed00, view=0x0, zoomX=1, zoomY=1) at koDocument.cc:732 #23 0x41781c84 in KoDocument::generatePreview(QSize const&) (this=0x8193b48, size=@0xbfffebb0) at koDocument.cc:1079 #24 0x41cb3cb5 in KWDocument::generatePreview(QSize const&) (this=0x8193b48, size=@0x0) at kwdoc.cc:2687 #25 0x41781933 in KoDocument::savePreview(KoStore*) (this=0xbfffee00, store=0x0) at koDocument.cc:1024 #26 0x4178136f in KoDocument::saveNativeFormat(QString const&) ( this=0x8193b48, _file=@0x0) at koDocument.cc:953 #27 0x4177f327 in KoDocument::slotAutoSave() (this=0x8193b48) at koDocument.cc:510 #28 0x41786c09 in KoDocument::qt_invoke(int, QUObject*) (this=0x8193b48, _id=11, _o=0xbffff0b0) at koDocument.moc:167 #29 0x41cbb834 in KWDocument::qt_invoke(int, QUObject*) (this=0x8193b48, _id=11, _o=0xbffff0b0) at kwdoc.moc:267 #30 0x40bf8464 in QObject::activate_signal(QConnectionList*, QUObject*) () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #31 0x40bf8231 in QObject::activate_signal(int) () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #32 0x40f7828b in QTimer::timeout() () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #33 0x40c1ded2 in QTimer::event(QEvent*) () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #34 0x40b90fff in QApplication::internalNotify(QObject*, QEvent*) () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #35 0x40b905c5 in QApplication::notify(QObject*, QEvent*) () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #36 0x40740345 in KApplication::notify(QObject*, QEvent*) (this=0x0, receiver=0x81926b8, event=0xbffff410) at kapplication.cpp:492 #37 0x40b7e884 in QEventLoop::activateTimers() () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #38 0x40b33e39 in QEventLoop::processEvents(unsigned) () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #39 0x40ba7858 in QEventLoop::enterLoop() () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #40 0x40ba7708 in QEventLoop::exec() () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #41 0x40b91261 in QApplication::exec() () from /home/tpr/qt-copy/lib/libqt-mt.so.3 #42 0x4090768e in main (argc=0, argv=0x0) at main.cc:43 #43 0x0804db5c in launch (argc=1, _name=0x806232c "kword", args=0x8062332 "\001", cwd=0x0, envc=1, envs=0x8062343 "", reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x0) at kinit.cpp:597 #44 0x0804ee89 in handle_launcher_request (sock=7) at kinit.cpp:1094 #45 0x0804f38b in handle_requests (waitForPid=0) at kinit.cpp:1265 #46 0x08050224 in main (argc=3, argv=0xbffffc84, envp=0x0) at kinit.cpp:1686 Subject: Re: New: KWord crashed suddenly when writing
On Sunday 12 October 2003 22:02, you wrote:
> #7 0x41fb463d in KoBgSpellCheck::spellCheckNextParagraph() (this=0x81be1f8)
> at koBgSpellCheck.cc:300
You seem to have a crash due to the 'background spellchecking' feature.
Try disabling it.
How recent is your CVS checkout?
Yeah, it helped. Thanks.. Hmm, where can I see the compile date? Or can I? Anyways I think it's a couple of weeks old, or probably three weeks.. Subject: Re: KWord crashed suddenly when writing
On Wednesday 15 October 2003 21:24, you wrote:
> Hmm, where can I see the compile date?
ls -l $KDEDIR/bin/kword
or
ls -l `which kword`
Ah, sorry, brainless me.. Here: tpr@tuli:~$ ls -al `which kword`;date -rwxr-xr-x 1 tpr tpr 8171 Oct 6 00:27 /home/tpr/kdecvshead/bin/kword Wed Oct 15 22:34:59 EEST 2003 I can (sometimes) reproduce a similar crash with current CVS HEAD. I did the following: 1) start kword (A4) 2) change font to Mincho, size to 36 3) enter 03ccc (and hit enter) [ccc get underlined in red] 4) Settings->Configure Kword->Spelling: active "Check words with numbers" 5) click OK in the configuration dialog [Kword crashes] Here is the backtrace: [New Thread 16384 (LWP 26204)] 0x414f2387 in waitpid () from /lib/libpthread.so.0 #0 0x414f2387 in waitpid () from /lib/libpthread.so.0 #1 0x40a438b2 in KCrash::defaultCrashHandler(int) () from /opt/kde-cvs/lib/libkdecore.so.4 #2 0x414f11ec in __pthread_sighandler () from /lib/libpthread.so.0 #3 <signal handler called> #4 0x40dbe314 in QShared::ref() (this=0xbfffeb70) at ../include/qshared.h:49 #5 0x40e3d492 in QFont (this=0xbfffeb70, font=@0x837d31c) at kernel/qfont.cpp:639 #6 0x41dd75cc in KoTextParag::setFormat(int, int, KoTextFormat const*, bool, int) () from /opt/kde-cvs/lib/libkotext.so.2 #7 0x41eb1219 in KoBgSpellCheck::spellCheckNextParagraph() () from /opt/kde-cvs/lib/libkotext.so.2 #8 0x41eb024c in KoBgSpellCheck::qt_invoke(int, QUObject*) () from /opt/kde-cvs/lib/libkotext.so.2 #9 0x40e8937f in QObject::activate_signal(QConnectionList*, QUObject*) ( this=0x81225b0, clist=0x81224b8, o=0xbfffed20) at kernel/qobject.cpp:2333 #10 0x40e8921e in QObject::activate_signal(int) (this=0x81225b0, signal=2) at kernel/qobject.cpp:2302 #11 0x411c7f7a in QTimer::timeout() (this=0x81225b0) at .moc/debug-shared-mt/moc_qtimer.cpp:82 #12 0x40eadb5b in QTimer::event(QEvent*) (this=0x81225b0, e=0xbfffef90) at kernel/qtimer.cpp:219 #13 0x40e2655d in QApplication::internalNotify(QObject*, QEvent*) ( this=0xbffff1b0, receiver=0x81225b0, e=0xbfffef90) at kernel/qapplication.cpp:2582 #14 0x40e25a1a in QApplication::notify(QObject*, QEvent*) (this=0xbffff1b0, receiver=0x81225b0, e=0xbfffef90) at kernel/qapplication.cpp:2305 #15 0x4099a323 in KApplication::notify(QObject*, QEvent*) () from /opt/kde-cvs/lib/libkdecore.so.4 #16 0x40dbd427 in QApplication::sendEvent(QObject*, QEvent*) ( receiver=0x81225b0, event=0xbfffef90) at kernel/qapplication.h:490 #17 0x40e14490 in QEventLoop::activateTimers() (this=0x80b4c00) at kernel/qeventloop_unix.cpp:557 #18 0x40dcef42 in QEventLoop::processEvents(unsigned) (this=0x80b4c00, flags=4) at kernel/qeventloop_x11.cpp:346 #19 0x40e3bf26 in QEventLoop::enterLoop() (this=0x80b4c00) at kernel/qeventloop.cpp:198 #20 0x40e3be42 in QEventLoop::exec() (this=0x80b4c00) at kernel/qeventloop.cpp:145 #21 0x40e266dd in QApplication::exec() (this=0xbffff1b0) at kernel/qapplication.cpp:2705 #22 0x4001710f in main () from /opt/kde-cvs/lib/kword.so #23 0x41636857 in __libc_start_main () from /lib/libc.so.6 The debugging output: kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-stefan/ksycoca kio (KTrader): KServiceTypeProfile::offers( KOfficePart, ) kio (KTrader): Returning 12 offers koffice (lib kospell): KOSpellConfig::interpret [] koffice (lib kospell): KOSpellConfig::interpret [] koffice (lib kospell): KOSpellConfig::getAvailDictsAspell /usr/lib/aspell /usr/lib koffice (lib kospell): KOSpellConfig/usr/lib/aspell koffice (lib kospell): koffice (lib kospell): entryList().count()=11 koffice (lib kospell): KOSpellConfig::interpret [de-only.rws] koffice (lib kospell): KOSpellConfig::interpret [de] koffice (lib kospell): KOSpellConfig::interpret [de_CH-only.rws] koffice (lib kospell): KOSpellConfig::interpret [de_CH] koffice (lib kospell): KOSpellConfig::interpret [de_DE-only.rws] koffice (lib kospell): KOSpellConfig::interpret [de_DE] koffice (lib kospell): KOSpellConfig::interpret [deutsch.alias] koffice (lib kospell): KOSpellConfig::interpret [german.alias] koffice (lib kospell): KOSpellConfig::interpret [swiss.alias] koffice (lib kospell): KOSpellConfig::interpret [] koffice (lib kospell): KOSpellConfig::interpret [] koffice (lib kospell): KOSpellConfig::interpret [] kio (KDirLister): +KDirLister kio (KDirListerCache): +KDirListerCache kio (KDirWatch): Can't use FAM (fam daemon not running?) kio (KDirWatch): Available methods: Stat kio (KTrader): KServiceTypeProfile::offers( ThumbCreator, ) kio (KTrader): Returning 12 offers kio (KTrader): KServiceTypeProfile::offers( ThumbCreator, ) kio (KTrader): Returning 12 offers kio (KTrader): KServiceTypeProfile::offers( KOfficePart, ) kio (KTrader): Returning 12 offers koffice (filter manager): KoFilterEntry::query( ) kio (KTrader): KServiceTypeProfile::offers( KOfficeFilter, ) kio (KTrader): Returning 62 offers koffice (filter manager): Checking whether KOffice XSLT Export Filter is available. koffice (filter manager): Not cached, checking... koffice (filter manager): Filter: KOffice XSLT Export Filter not available. kio (KTrader): KServiceTypeProfile::offers( ThumbCreator, ) kio (KTrader): Returning 12 offers kio (KTrader): KServiceTypeProfile::offers( ThumbCreator, ) kio (KTrader): Returning 12 offers kio (KTrader): KServiceTypeProfile::offers( ThumbCreator, ) kio (KTrader): Returning 12 offers kio (KTrader): KServiceTypeProfile::offers( ThumbCreator, ) kio (KTrader): Returning 12 offers kio (KIOJob): stat file:/tmp/test.kwd kio (KIOJob): stat file:/home/stefan/uni/graphstego/submission/graphstego.pdf kio (KDirLister): -KDirLister kio (KDirLister): [virtual void KDirLister::stop()] kio (KDirListerCache): [void KDirListerCache::stop(KDirLister*)] lister: 0x81cad78 kio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*)] 0x81cad78 koffice (lib kofficecore): KoDocument::loadNativeFormat( /opt/kde-cvs/share/apps/kword/templates/Normal/.source/A4.kwt ) kword: Loading took 0.11 seconds kword: [void KWDocument::processPictureRequests()] 0 picture requests. kword (formatting): KWDocument::recalcFrames from=0 to=-1 kword: fixing page 0 z-orders kotext: kospell.cc:128 Codec = <default> kotext: Try #0 kotext: Using ispell kparts: found Plugin : /opt/kde-cvs/share/apps/kword/kpartplugins/scan-kword.rc ! kparts: loadPlugins found desktopfile for kword: kparts: load plugin kword: 1 false kio (KTrader): KServiceTypeProfile::offers( KOfficePart, ) kio (KTrader): Returning 12 offers kword: KWTextFrameSetEdit::KWTextFrameSetEdit Text Frameset 1 kparts: 0x814ab58 emitting activePartChanged 0x810db98 kdecore (KAction): WARNING: KAction::plug(): has no KAccel object; this = 0x8117b38 name = koffice_undo parentCollection = 0x81178f8 kdecore (KAction): WARNING: KAction::plug(): has no KAccel object; this = 0x811cde8 name = koffice_redo parentCollection = 0x81178f8 kword: [KFormula::Document* KWDocument::getFormulaDocument()] kotext: KoSpell::KoSpell2 kdecore (KProcIO): Empty kdeui (KCommand): Initializing the Command History kdecore (KAction): WARNING: KAction::updateShortcut(): name = "koffice_undo", cut = Ctrl+Z; No KAccel, probably missing a parent collection. kdecore (KAction): WARNING: KAction::updateShortcut(): name = "koffice_redo", cut = Ctrl+Shift+Z; No KAccel, probably missing a parent collection. kparts: ReadWritePart::setModified( true) kword: [bool KoDocument::isModified()] Modified doc='' extern=false kdecore (KAction): WARNING: KAction::updateShortcut(): name = "koffice_undo", cut = Ctrl+Z; No KAccel, probably missing a parent collection. QFile::open: No file name specified kdecore (KProcIO): Sending [2] kdecore (KProcIO): Empty kdecore (KProcIO): Sending [3] kdecore (KProcIO): Empty kdecore (KProcIO): Sending [6] kdecore (KProcIO): Empty kdecore (KAction): WARNING: KAction::updateShortcut(): name = "koffice_undo", cut = Ctrl+Z; No KAccel, probably missing a parent collection. koffice (lib kospell): KOSpellConfig::interpret [] QMetaObject::findSignal:KListView: Conflict with QListView::doubleClicked(QListViewItem*,const QPoint&,int) koffice (lib kospell): KOSpellConfig::fillinDialog koffice (lib kospell): KOSpellConfig::interpret [] koffice (lib kospell): KOSpellConfig::interpret [] I can't reproduce this reliably. Most of the time when I do what is described above it crashes, but not always. I have no idea on what this depends. Another strange thing: When I open KWord and active "Check Words with numbers", this is not saved on OK, i.e. when closing kword after that and then opening it again, this checkbox is no longer checked. Greetings, Stefan Fixed the following part: "When I open KWord and active "Check Words with numbers", this is not saved on OK, i.e. when closing kword after that and then opening it again, this checkbox is no longer checked." (for KOffice 1.3.1) The "00ccc" crash is still reproducable. Make sure to wait for the "ccc" part to get redlined before pressing return. Then go to spelling configuration and change something. Crashes when selecting "OK". Problem seems to be a ref-count error on one of the KoTextFormat objects: ==24431== Invalid read of size 4 ==24431== at 0x410CA761: QFont::QFont(QFont const&) (qfont.cpp:624) ==24431== by 0x4812646A: KoTextParag::setFormat(int, int, KoTextFormat const*, bool, int) (kotextformat.h:436) ==24431== by 0x481F1F55: KoBgSpellCheck::spellCheckNextParagraph() (korichtext.h:1186) ==24431== by 0x481F10FB: KoBgSpellCheck::qt_invoke(int, QUObject*) (koBgSpellCheck.moc:101) ==24431== by 0x41116508: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2333) ==24431== by 0x411163A7: QObject::activate_signal(int) (qobject.cpp:2302) ==24431== by 0x4145CFFB: QTimer::timeout() (.moc/debug-shared-mt/moc_qtimer.cpp:82) ==24431== by 0x4113AB36: QTimer::event(QEvent*) (qtimer.cpp:219) ==24431== by 0x410B3746: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2582) ==24431== by 0x410B2C03: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2305) ==24431== by 0x40C2AE9C: KApplication::notify(QObject*, QEvent*) (in /ext/kde_32/lib/libkdecore.so.4.2.0) ==24431== by 0x4104A59E: QApplication::sendEvent(QObject*, QEvent*) (qapplication.h:492) ==24431== by 0x410A1813: QEventLoop::activateTimers() (qeventloop_unix.cpp:557) ==24431== by 0x4105C0E1: QEventLoop::processEvents(unsigned) (qeventloop_x11.cpp:346) ==24431== by 0x410C9221: QEventLoop::enterLoop() (qeventloop.cpp:198) ==24431== by 0x410C913D: QEventLoop::exec() (qeventloop.cpp:145) ==24431== by 0x410B38C6: QApplication::exec() (qapplication.cpp:2705) ==24431== by 0x402334EE: main (main.cc:43) ==24431== by 0x4198BD3D: __libc_start_main (in /lib/libc.so.6) ==24431== by 0x8048620: ??? (start.S:102) ==24431== Address 0x4C8369F4 is 44 bytes inside a block of size 76 free'd ==24431== at 0x4002A0B3: __builtin_delete (vg_replace_malloc.c:244) ==24431== by 0x4002A0D1: operator delete(void*) (vg_replace_malloc.c:253) ==24431== by 0x4813B2B1: QDict<KoTextFormat>::deleteItem(void*) (qdict.h:97) ==24431== by 0x413DC2A5: QGDict::remove_string(QString const&, void*) (tools/qgdict.cpp:676) ==24431== by 0x4813AE50: QDict<KoTextFormat>::remove(QString const&) (qdict.h:68) ==24431== by 0x48139D98: KoTextFormatCollection::remove(KoTextFormat*) (kotextformat.h:461) ==24431== by 0x48133B4B: KoTextFormat::removeRef() (kotextformat.cc:497) ==24431== by 0x48122D8B: KoTextString::setFormat(int, KoTextFormat*, bool) (korichtext.h:1426) ==24431== by 0x4812628F: KoTextParag::setFormat(int, int, KoTextFormat const*, bool, int) (korichtext.cpp:3686) ==24431== by 0x481F1F55: KoBgSpellCheck::spellCheckNextParagraph() (korichtext.h:1186) ==24431== by 0x481F10FB: KoBgSpellCheck::qt_invoke(int, QUObject*) (koBgSpellCheck.moc:101) ==24431== by 0x41116508: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2333) ==24431== by 0x411163A7: QObject::activate_signal(int) (qobject.cpp:2302) ==24431== by 0x4145CFFB: QTimer::timeout() (.moc/debug-shared-mt/moc_qtimer.cpp:82) ==24431== by 0x4113AB36: QTimer::event(QEvent*) (qtimer.cpp:219) ==24431== by 0x410B3746: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2582) ==24431== by 0x410B2C03: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2305) ==24431== by 0x40C2AE9C: KApplication::notify(QObject*, QEvent*) (in /ext/kde_32/lib/libkdecore.so.4.2.0) ==24431== by 0x4104A59E: QApplication::sendEvent(QObject*, QEvent*) (qapplication.h:492) ==24431== by 0x410A1813: QEventLoop::activateTimers() (qeventloop_unix.cpp:557) ==24431== by 0x4105C0E1: QEventLoop::processEvents(unsigned) (qeventloop_x11.cpp:346) ==24431== by 0x410C9221: QEventLoop::enterLoop() (qeventloop.cpp:198) ==24431== by 0x410C913D: QEventLoop::exec() (qeventloop.cpp:145) ==24431== by 0x410B38C6: QApplication::exec() (qapplication.cpp:2705) ==24431== by 0x402334EE: main (main.cc:43) ==24431== by 0x4198BD3D: __libc_start_main (in /lib/libc.so.6) ==24431== by 0x8048620: ??? (start.S:102) Following patch fixes: --- korichtext.cpp 19 Sep 2003 23:32:45 -0000 1.133 +++ korichtext.cpp 16 Feb 2004 15:49:22 -0000 @@ -1087,7 +1087,7 @@ void KoTextCursor::splitAndInsertEmptyPa if ( f->isMisspelled() ) { KoTextFormat fNoMisspelled( *f ); fNoMisspelled.setMisspelled( false ); - f->removeRef(); +// f->removeRef(); f = doc->formatCollection()->format( &fNoMisspelled ); } } Not sure if correct because the refcounts don't make much sense to me (they seem to be ever increasing somehow? Are they stored in undo-history?) *** Bug 66705 has been marked as a duplicate of this bug. *** CVS commit by waba: Fix ref-counting of KoTextFormat objects when background spell-checking is enabled. (BR65933, BR66705) CCMAIL: 65933-done@bugs.kde.org M +0 -1 korichtext.cpp 1.133.2.1 --- koffice/lib/kotext/korichtext.cpp #1.133:1.133.2.1 @@ -1088,5 +1088,4 @@ void KoTextCursor::splitAndInsertEmptyPa KoTextFormat fNoMisspelled( *f ); fNoMisspelled.setMisspelled( false ); - f->removeRef(); f = doc->formatCollection()->format( &fNoMisspelled ); } |