Version: 1.4 (using KDE 3.4.1, compiled sources) Compiler: gcc version 3.4.2 [FreeBSD] 20040728 OS: FreeBSD (amd64) release 5.4-STABLE [Switching to LWP 100168] [KCrash handler] #6 0x0000000805e196f1 in KSpreadCell::row () from /usr/local/lib/libkspreadcommon.so.0 #7 0x0000000805e21a56 in KSpreadCell::paintObscuredCells () from /usr/local/lib/libkspreadcommon.so.0 #8 0x0000000805e21114 in KSpreadCell::paintCell () from /usr/local/lib/libkspreadcommon.so.0 #9 0x0000000805e0e6ac in KSpreadCanvas::paintUpdates () from /usr/local/lib/libkspreadcommon.so.0 #10 0x0000000805f232a4 in KSpreadView::paintUpdates () from /usr/local/lib/libkspreadcommon.so.0 #11 0x0000000805e4d380 in KSpreadDoc::paintUpdates () from /usr/local/lib/libkspreadcommon.so.0 #12 0x0000000805e513f5 in KSpreadDoc::emitEndOperation () from /usr/local/lib/libkspreadcommon.so.0 #13 0x0000000805e04c6f in KSpreadCanvas::slotScrollVert () from /usr/local/lib/libkspreadcommon.so.0 #14 0x0000000805e1812b in KSpreadCanvas::qt_invoke () from /usr/local/lib/libkspreadcommon.so.0 #15 0x00000008020c989d in QObject::activate_signal () from /usr/X11R6/lib/libqt-mt.so.3 #16 0x00000008020c9af2 in QObject::activate_signal () from /usr/X11R6/lib/libqt-mt.so.3 #17 0x00000008023d17a5 in QScrollBar::valueChanged () from /usr/X11R6/lib/libqt-mt.so.3 #18 0x00000008021bfdb2 in QScrollBar::valueChange () from /usr/X11R6/lib/libqt-mt.so.3 #19 0x00000008021bf2ea in QRangeControl::setValue () from /usr/X11R6/lib/libqt-mt.so.3 #20 0x00000008021c1280 in QScrollBar::setValue () from /usr/X11R6/lib/libqt-mt.so.3 #21 0x00000008021c01ac in QScrollBar::wheelEvent () from /usr/X11R6/lib/libqt-mt.so.3 #22 0x00000008020fceb6 in QWidget::event () from /usr/X11R6/lib/libqt-mt.so.3 #23 0x0000000802072052 in QApplication::internalNotify () from /usr/X11R6/lib/libqt-mt.so.3 #24 0x0000000802071970 in QApplication::notify () from /usr/X11R6/lib/libqt-mt.so.3 #25 0x00000008014a79a6 in KApplication::notify () from /usr/local/lib/libkdecore.so.6 #26 0x0000000805e071b7 in KSpreadCanvas::wheelEvent () from /usr/local/lib/libkspreadcommon.so.0 #27 0x00000008020fceb6 in QWidget::event () from /usr/X11R6/lib/libqt-mt.so.3 #28 0x0000000802072052 in QApplication::internalNotify () from /usr/X11R6/lib/libqt-mt.so.3 #29 0x0000000802071970 in QApplication::notify () from /usr/X11R6/lib/libqt-mt.so.3 #30 0x00000008014a79a6 in KApplication::notify () from /usr/local/lib/libkdecore.so.6 #31 0x000000080200eac0 in QETWidget::translateWheelEvent () from /usr/X11R6/lib/libqt-mt.so.3 #32 0x000000080200e118 in QETWidget::translateMouseEvent () from /usr/X11R6/lib/libqt-mt.so.3 #33 0x000000080200c7bd in QApplication::x11ProcessEvent () from /usr/X11R6/lib/libqt-mt.so.3 #34 0x00000008020217a9 in QEventLoop::processEvents () from /usr/X11R6/lib/libqt-mt.so.3 #35 0x00000008020833b9 in QEventLoop::enterLoop () from /usr/X11R6/lib/libqt-mt.so.3 #36 0x0000000802083312 in QEventLoop::exec () from /usr/X11R6/lib/libqt-mt.so.3 #37 0x0000000802072175 in QApplication::exec () from /usr/X11R6/lib/libqt-mt.so.3 #38 0x0000000804c8d56e in kdemain () from /usr/local/lib/libkdeinit_kspread.so #39 0x0000000804b8b9b9 in kdeinitmain () from /usr/local/lib/kde3/kspread.so #40 0x00000000004070ac in execpath_avoid_loops () #41 0x00000000004081cf in execpath_avoid_loops () #42 0x00000000004087d3 in execpath_avoid_loops () #43 0x0000000000409bb1 in main ()
Created attachment 11697 [details] document that crashes when you scroll up open that document and scroll towards cell A1, it will crash.
Created attachment 11698 [details] fixes the crash This patch makes KSpread not crash. I didn't closely investigate if it's solved well, so I don't know if the _bug_ is fixed ;) Please anyone take a look and apply in branch and trunk. Thanks!
SVN commit 432254 by raphael: Fix crash related to obscured cells in rendering code. Note: There might be some related bugs that caused this crash. Anyway, this code is cleaner and does fix the crash. CCBUG: 108659 M +3 -1 kspread_cell.cc --- trunk/koffice/kspread/kspread_cell.cc #432253:432254 @@ -2488,7 +2488,9 @@ else { // If the cell towards the top is part of a merged cell, get // the pointer to the master cell. - cellUp = cellUp->ultimateObscuringCell(); + if (cellUp->ultimateObscuringCell()) + cellUp = cellUp->ultimateObscuringCell(); + topPen = cellUp->effBottomBorderPen( cellUp->column(), cellUp->row() );
SVN commit 432256 by raphael: KOffice 1.4 Backport Fix crash related to obscured cells in rendering code. Note: There might be some related bugs that caused this crash. Anyway, this code is cleaner and does fix the crash. BUG: 108659 M +3 -1 kspread_cell.cc --- branches/koffice/1.4/koffice/kspread/kspread_cell.cc #432255:432256 @@ -2488,7 +2488,9 @@ else { // If the cell towards the top is part of a merged cell, get // the pointer to the master cell. - cellUp = cellUp->ultimateObscuringCell(); + if (cellUp->ultimateObscuringCell()) + cellUp = cellUp->ultimateObscuringCell(); + topPen = cellUp->effBottomBorderPen( cellUp->column(), cellUp->row() );