[kde-solaris] Crash in kmail (kdepim-3.1.93)
James F. Hranicky
jfh at cise.ufl.edu
Mon Nov 24 12:53:42 CET 2003
On Mon, 24 Nov 2003 02:22:34 -0400
Stefan Teleman <steleman at nyc.rr.com> wrote:
> Should _never_ use C-style casts, but dynamic_cast<>(), and check for
> returning 0.
When I try changing the line to this:
const QListViewItem* c = dynamic_cast<QListViewItem * const>(this);
I get this compilation error:
widgets/qlistview.cpp:3815: error: cannot dynamic_cast `this' (of type `const
class QListViewItem* const') to type `class QListViewItem* const' (
conversion casts away constness)
Do you know how this should be done? My C++ is *very* rusty.
Jim
> On Sunday 23 November 2003 22:21, James F.Hranicky wrote:
> > Platform: Solaris 8
> > Compiler: gcc/g++ 3.3.2 -g (debug enabled for qt and kde)
> > IMAP Server: courier 1.6.2/freebsd
> >
> > When running kmail, I can read some of my folders without any
> > problems, but when I go to read my INBOX, and kmail is retrieving
> > the header list, I get a sefgault (shortened gdb output):
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0xfc9535cc in QListViewItem::listView() const (this=0x33be70)
> > at widgets/qlistview.cpp:3815
> > (gdb) where
> > #0 0xfc9535cc in QListViewItem::listView() const (this=0x33be70)
> > at widgets/qlistview.cpp:3815
> > #1 0xff065a90 in KMHeaderItem::irefresh() (this=0x33be70) at
> > kmheaders.cpp:207 #2 0xfedf2dcc in
> > KMHeaders::msgHeaderChanged(KMFolder*, int) (this=0x33be70,
> > msgId=996088) at kmheaders.cpp:1363
> > (gdb) p this
> > $1 = (const QListViewItem * const) 0x33be70
> > (gdb) p c
> > $2 = (const QListViewItem *) 0x6c626f78
> > (gdb) p *c
> > Cannot access memory at address 0x6c626f78
> > (gdb)
> >
> > ----:**-F1 *gud-kmail*
> > (Debugger:run)--L235--Bot-----------------------------------
> >
> > QListView * QListViewItem::listView() const
> > {
> > const QListViewItem* c = this;
> > => while ( c && !c->is_root )
> > c = c->parentItem;
> > if ( !c )
> > return 0;
> > return ((QListViewPrivate::Root*)c)->theListView();
> > }
> >
> > Other times, c is a different invalid value:
> >
> > [Switching to Thread 1 (LWP 1)]
> > 0xfbc1d34c in _poll () from /usr/lib/libc.so.1
> > (gdb) c
> > Continuing.
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0xfc9535cc in QListViewItem::listView() const (this=0x570da8)
> > at widgets/qlistview.cpp:3815
> > (gdb) p this
> > $1 = (const QListViewItem * const) 0x570da8
> > (gdb) p c
> > $2 = (const QListViewItem *) 0x149
> > (gdb)
> >
> > The cast seems to have problems, I guess due to a pointer bug
> > somewhere. Anyone have any suggestions?
> >
> > -------------------------------------------------------------------
> >---
> >
> > | Jim Hranicky, Senior SysAdmin UF/CISE
> > | Department | E314D CSE Building Phone
> > | (352) 392-1499 | jfh at cise.ufl.edu
> > | http://www.cise.ufl.edu/~jfh |
> >
> > -------------------------------------------------------------------
> >--- ___________________________________________________
> > This message is from the kde-solaris mailing list.
> > Account management:
> > https://mail.kde.org/mailman/listinfo/kde-solaris. Archives:
> > http://lists.kde.org/.
> > More info: http://www.kde.org/faq.html.
>
> --
> Stefan Teleman 'Nobody Expects the Spanish Inquisition'
> steleman at nyc.rr.com -Monty Python
>
> ___________________________________________________
> This message is from the kde-solaris mailing list.
> Account management: https://mail.kde.org/mailman/listinfo/kde-solaris.
> Archives: http://lists.kde.org/.
> More info: http://www.kde.org/faq.html.
>
More information about the kde-solaris
mailing list