]>
Commit | Line | Data |
---|---|---|
e1e72f4a ER |
1 | there appeared some kind of leak or memory overwrite, or double destruct, can't |
2 | track down where it came from, only thing done (to my knowledge) was to rebuild | |
3 | kde packages due newer dependencies in distro. maybe gcc overoptimizes, but | |
4 | rebuild with gcc 4.4.2 did not help. | |
5 | ||
6 | crash happens when kmail send mail window is destructed (you hit send mail | |
7 | button) | |
8 | ||
9 | Program received signal SIGSEGV, Segmentation fault. | |
10 | 0x00007ffff6dba027 in DCOPObject::~DCOPObject (this=0xdf03b8, __in_chrg=<value optimized out>) at dcopobject.cpp:81 | |
11 | 81 if ( d->m_signalConnections > 0 && client ) | |
12 | (gdb) bt | |
13 | #0 0x00007ffff6dba027 in DCOPObject::~DCOPObject (this=0xdf03b8, __in_chrg=<value optimized out>) at dcopobject.cpp:81 | |
14 | #1 0x00007ffff77c6a6b in KMComposeWin::~KMComposeWin (this=0xdefd30, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at kmcomposewin.cpp:490 | |
15 | #2 0x00007ffff66b911a in QObject::event(QEvent*) () from /usr/lib64/libqt-mt.so.3 | |
16 | #3 0x00007ffff66ee013 in QWidget::event(QEvent*) () from /usr/lib64/libqt-mt.so.3 | |
17 | #4 0x00007ffff665a865 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib64/libqt-mt.so.3 | |
18 | #5 0x00007ffff665b96e in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libqt-mt.so.3 | |
19 | #6 0x00007ffff70aaf28 in KApplication::notify (this=0x7fffffffda10, receiver=0xdefd30, event=0xe72500) at kapplication.cpp:550 | |
20 | #7 0x00007ffff665c263 in QApplication::sendPostedEvents(QObject*, int) () from /usr/lib64/libqt-mt.so.3 | |
21 | #8 0x00007ffff660acad in QEventLoop::processEvents(unsigned int) () from /usr/lib64/libqt-mt.so.3 | |
22 | #9 0x00007ffff6670ba9 in QEventLoop::enterLoop() () from /usr/lib64/libqt-mt.so.3 | |
23 | #10 0x00007ffff6670a32 in QEventLoop::exec() () from /usr/lib64/libqt-mt.so.3 | |
24 | #11 0x00000000004028cc in main (argc=3, argv=<value optimized out>) at main.cpp:110 | |
25 | (gdb) p d | |
26 | $1 = (DCOPObject::DCOPObjectPrivate *) 0x0 | |
27 | (gdb) p client | |
28 | $2 = <value optimized out> | |
29 | (gdb) l | |
30 | 76 } | |
31 | 77 | |
32 | 78 DCOPObject::~DCOPObject() | |
33 | 79 { | |
34 | 80 DCOPClient *client = DCOPClient::mainClient(); | |
35 | 81 if ( d->m_signalConnections > 0 && client ) | |
36 | 82 client->disconnectDCOPSignal( 0, 0, 0, objId(), 0 ); | |
37 | 83 | |
38 | 84 objMap()->remove(ident); | |
39 | 85 delete d; | |
40 | (gdb) | |
41 | ||
42 | --- kdelibs-3.5.10/dcop/dcopobject.cpp~ 2005-09-10 11:27:23.000000000 +0300 | |
43 | +++ kdelibs-3.5.10/dcop/dcopobject.cpp 2010-01-30 07:56:50.818689543 +0200 | |
44 | @@ -78,7 +78,7 @@ | |
45 | DCOPObject::~DCOPObject() | |
46 | { | |
47 | DCOPClient *client = DCOPClient::mainClient(); | |
48 | - if ( d->m_signalConnections > 0 && client ) | |
49 | + if (d && d->m_signalConnections > 0 && client ) | |
50 | client->disconnectDCOPSignal( 0, 0, 0, objId(), 0 ); | |
51 | ||
52 | objMap()->remove(ident); |