Bug 56166 - Zoom in with antialiased fonts and a note displayed in classdiagram crashes
Summary: Zoom in with antialiased fonts and a note displayed in classdiagram crashes
Status: RESOLVED FIXED
Alias: None
Product: umbrello
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Umbrello Development Group
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-03-20 00:18 UTC by Klas Kalass
Modified: 2003-03-22 14:25 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Klas Kalass 2003-03-20 00:18:23 UTC
Version:           1.2-alpha (using KDE 3.1.0)
Installed from:    compiled sources
Compiler:          gcc version 3.2
OS:          Linux (i686) release 2.4.19-4GB

How to reproduce:

1) New diagram
2) Right click on the class diagram in the diagram view and select properties, 
   change the font to an antialiased font (e.g. Arial or Times New Roman)
3) Add a Note to the diagram, add some text to the note
4) Zoom in

I get the following backtrace:

[New Thread 1024 (LWP 30408)]
0x4129e8c9 in wait4 () from /lib/libc.so.6
#0  0x4129e8c9 in wait4 () from /lib/libc.so.6
#1  0x41319c90 in __DTOR_END__ () from /lib/libc.so.6
#2  0x410f9a93 in waitpid () from /lib/libpthread.so.0
#3  0x407d26ab in KCrash::defaultCrashHandler(int) ()
   from /opt/kde3/lib/libkdecore.so.4
#4  <signal handler called>
#5  0x40b48d4b in QFontPrivate::textExtents(QString const&, int, int, QCharStruct*) () from /usr/lib/libqt-mt.so.3
#6  0x40b4fbe3 in QFontMetrics::boundingRect(QString const&, int) const ()
   from /usr/lib/libqt-mt.so.3
#7  0x40af8b32 in QPainter::drawText(int, int, QString const&, int, int, QPainter::TextDirection) () from /usr/lib/libqt-mt.so.3
#8  0x40af86c0 in QPainter::drawText(int, int, QString const&, int, QPainter::TextDirection) () from /usr/lib/libqt-mt.so.3
#9  0x40b925a8 in qt_format_text(QFont const&, QRect const&, int, QString const&, int, QRect*, int, int*, int, QTextParag**, QPainter*) ()
   from /usr/lib/libqt-mt.so.3
#10 0x40b91fa3 in QPainter::drawText(QRect const&, int, QString const&, int, QRect*, QTextParag**) () from /usr/lib/libqt-mt.so.3
#11 0x080851d9 in QPainter::drawText(int, int, int, int, int, QString const&, int, QRect*, QTextParag**) (this=0xbfffe900, x=31, y=28, w=7, h=12, tf=1, 
    str=@0xbfffe480, len=-1, br=0x0, i=0x0)
    at /usr/lib/qt3/include/qpainter.h:667
#12 0x080c3b5b in NoteWidget::drawText(QPainter&, int, int) (this=0x83109b8, 
    p=@0xbfffe900, offsetX=11, offsetY=10)
    at /kde/src/kdesdk/umbrello/umbrello/notewidget.cpp:223
#13 0x080c2fb3 in NoteWidget::draw(QPainter&, int, int) (this=0x83109b8, 
    p=@0xbfffe900, offsetX=11, offsetY=10)
    at /kde/src/kdesdk/umbrello/umbrello/notewidget.cpp:68
#14 0x0808e828 in UMLWidget::drawShape(QPainter&) (this=0x83109b8, 
    p=@0xbfffe900) at /kde/src/kdesdk/umbrello/umbrello/umlwidget.cpp:595
#15 0x40d67f0a in QCanvasPolygonalItem::draw(QPainter&) ()
   from /usr/lib/libqt-mt.so.3
#16 0x40d5fb42 in QCanvasItemList::drawUnique(QPainter&) ()
   from /usr/lib/libqt-mt.so.3
#17 0x40d626bc in QCanvas::drawCanvasArea(QRect const&, QPainter*, bool) ()
   from /usr/lib/libqt-mt.so.3
#18 0x40d61445 in QCanvas::drawViewArea(QCanvasView*, QPainter*, QRect const&, bool) () from /usr/lib/libqt-mt.so.3
#19 0x40d67634 in QCanvasView::drawContents(QPainter*, int, int, int, int) ()
   from /usr/lib/libqt-mt.so.3
#20 0x40c895c3 in QScrollView::drawContentsOffset(QPainter*, int, int, int, int, int, int) () from /usr/lib/libqt-mt.so.3
#21 0x40c8814a in QScrollView::viewportPaintEvent(QPaintEvent*) ()
   from /usr/lib/libqt-mt.so.3
#22 0x40c87b43 in QScrollView::eventFilter(QObject*, QEvent*) ()
   from /usr/lib/libqt-mt.so.3
#23 0x40b8a07e in QObject::activate_filters(QEvent*) ()
   from /usr/lib/libqt-mt.so.3
#24 0x40b89fa1 in QObject::event(QEvent*) () from /usr/lib/libqt-mt.so.3
#25 0x40bc053c in QWidget::event(QEvent*) () from /usr/lib/libqt-mt.so.3
#26 0x40b2e2e4 in QApplication::internalNotify(QObject*, QEvent*) ()
   from /usr/lib/libqt-mt.so.3
#27 0x40b2de4b in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libqt-mt.so.3
#28 0x40748000 in KApplication::notify(QObject*, QEvent*) ()
   from /opt/kde3/lib/libkdecore.so.4
#29 0x40acff22 in QApplication::x11ProcessEvent(_XEvent*) ()
   from /usr/lib/libqt-mt.so.3
#30 0x40ae4eda in QEventLoop::processEvents(unsigned) ()
   from /usr/lib/libqt-mt.so.3
#31 0x40b41fa6 in QEventLoop::enterLoop() () from /usr/lib/libqt-mt.so.3
#32 0x40b41e48 in QEventLoop::exec() () from /usr/lib/libqt-mt.so.3
#33 0x40b2e511 in QApplication::exec() () from /usr/lib/libqt-mt.so.3
#34 0x080c6fb9 in main (argc=1, argv=0xbffff814)
    at /kde/src/kdesdk/umbrello/umbrello/main.cpp:86
#35 0x412194a2 in __libc_start_main () from /lib/libc.so.6
Comment 1 Klas Kalass 2003-03-20 00:19:49 UTC
I forgot to say: Current head, but also happens with the test build from 14.03 which was prior to 
my changes... 
Comment 2 Klas Kalass 2003-03-22 14:25:07 UTC
Subject: kdesdk/umbrello/umbrello

CVS commit by kalass: 

CCMAIL: 56166-done@bugs.kde.org

ouch - do not try to display the 0-termination of a string.


  M +1 -1      notewidget.cpp   1.4


--- kdesdk/umbrello/umbrello/notewidget.cpp  #1.3:1.4
@@ -210,5 +210,5 @@ void NoteWidget::drawText(QPainter & p, 
                         word = "";
                 } else {
-                        word += c;
+                        if (c!='\0') word += c;
                 }
         }//end while