nobody wrote:
nobody wrote:
Hi,
I tried qt4.6.0-tp1 library with vlc.git then if vlc's messages
dialog is open during the quit process it will crash the
libqt4_plugin.dll qt4 module.
Knowing that the messages dialog class is using getInstance() style
with a per class global variable.
And where it did not cause a crash previously in using qt4.5.2 library.
Messages dialog source cpp file :
MessagesDialog *MessagesDialog::instance = NULL;
Header file :
public:
static MessagesDialog * getInstance( intf_thread_t *p_intf )
{
if( !instance)
instance = new MessagesDialog( p_intf );
return instance;
}
static void killInstance()
{
delete instance;
instance = NULL;
}
Can this type of code be the problem? And why did it not previously
in qt4.5.2 trigger this issue?
Thanks
Forgot to mention the only time it doesn't trigger this crash is when
qt4.6.0-tp1 library is compiled without -qt-style-windowsvista
-qt-style-windowsxp
Triggered also when preferences dialog is open which this type of
dialog isn't using th getInstance() style. It is been called by
PrefsDialog *p = new PrefsDialog( (QWidget *)p_intf->p_sys->p_mi,
p_intf );
So am I missing something here?
Activating -qt-style-windowsvista caused this issue
Changing style to windowsxp, windows, motif, CDE, Plastique, Cleanlooks
from simple preferences on the fly then quit will not trigger this crash.
Only when style is windowsvista and with any external dialogs open vlc
quit will trigger this type of crash.
Here's some gdb output:
Program received signal SIGSEGV, Segmentation fault.
[Switching to thread 5676.0x1970]
0x000000000c6965c8 in ?? ()
(gdb) bt
#0 0x000000000c6965c8 in ?? ()
#1 0x000000000f1af770 in ?? ()
#2 0x000000000bed1ef9 in ?? ()
#3 0xfeeefeeefeeefef6 in ?? ()
#4 0x0000000000000000 in ?? ()
(gdb) disass $pc-30 $pc+30
Dump of assembler code from 0xc6965aa to 0xc6965e6:
0x000000000c6965aa: mov %esp,%ebp
0x000000000c6965ac: mov %rcx,0x10(%rbp)
0x000000000c6965b0: mov 0x10(%rbp),%rax
0x000000000c6965b4: mov (%rax),%rax
0x000000000c6965b7: leaveq
0x000000000c6965b8: retq
0x000000000c6965b9: nop
0x000000000c6965ba: nop
0x000000000c6965bb: nop
0x000000000c6965bc: push %rbp
0x000000000c6965bd: mov %rsp,%rbp
0x000000000c6965c0: mov %rcx,0x10(%rbp)
0x000000000c6965c4: mov 0x10(%rbp),%rax
0x000000000c6965c8: mov (%rax),%rax
0x000000000c6965cb: leaveq
0x000000000c6965cc: retq
0x000000000c6965cd: nop
0x000000000c6965ce: nop
0x000000000c6965cf: nop
0x000000000c6965d0: push %rbp
0x000000000c6965d1: mov %rsp,%rbp
0x000000000c6965d4: sub $0x20,%rsp
0x000000000c6965d8: mov %rcx,0x10(%rbp)
0x000000000c6965dc: mov 0x10(%rbp),%rax
0x000000000c6965e0: mov (%rax),%rax
0x000000000c6965e3: test %rax,%rax
End of assembler dump.
(gdb) info registers
rax 0xfeeefeeefeeefef6 -76843841185972490
rcx 0xfeeefeeefeeefef6 -76843841185972490
rdx 0x10a85cf0 279469296
rbx 0xc488cbc 206081212
rsp 0xf1af740 253425472
rbp 0xf1af740 253425472
rsi 0xf1afde0 253427168
rdi 0xf1afcc0 253426880
r8 0x0 0
r9 0x0 0
r10 0x7b 123
r11 0x105945f0 274286064
r12 0x0 0
r13 0x0 0
r14 0x0 0
r15 0x0 0
rip 0xc6965c8 0xc6965c8
eflags 0x10206 [ PF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x53 83
gs 0x2b 43
(gdb) print $pc
$1 = (void (*)()) 0xc6965c8
_______________________________________________
Qt4-preview-feedback mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback