Trolltech Home | Qt-jambi-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 1

Qt-jambi-interest Archive, June 2007
QAction#setShortcut crash


Message 1 in thread

Hi!

I just noticed another hard crash in Jambi: a call to QAction#setShortcut 
crashes the VM if the application did not create a QApplication object 
beforehand. Most  other setters on QAction seem to work in that situation. 
The relevant part of the VM crash log is quite short:

Stack: [0x00007fff2c110000,0x00007fff2c310000),  sp=0x00007fff2c308e50,  free 
space=2019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native 
code)
C  [libQtGui.so.4+0x191838]  _ZN7QAction11setShortcutERK12QKeySequence+0x58

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.trolltech.qt.gui.QAction.__qt_setShortcut_QKeySequence(JJ)V+0
j  
com.trolltech.qt.gui.QAction.setShortcut(Lcom/trolltech/qt/gui/QKeySequence;)V+73
j  com.trolltech.qt.gui.QAction.setShortcut(Ljava/lang/String;)V+9
j  
ml.plugins.ui.mainwindow.coretools.NewAction.<init>(Lcom/trolltech/qt/gui/QWidget;)V+12
j  ml.plugins.ui.mainwindow.Plugin.load()V+405
j  ml.core.plugins.Manager$PluginWrapper.load()V+4
j  ml.core.plugins.Manager.initializePlugins()V+112
j  ml.core.plugins.Manager.loadPlugins()V+13
j  ml.MLBatch.<init>([Ljava/lang/String;)V+127
j  ml.MLBatch.main([Ljava/lang/String;)V+5
v  ~StubRoutines::call_stub

I know that this situation is a nearly complete abuse of Qt and I should 
probably avoid creating these QAction objects in that case. :-) Still, I 
think you might be interested in this.

Regards,
Gregor

-- 
 [ signature omitted ] 

Attachment: signature.asc
Description: This is a digitally signed message part.


Message 2 in thread

Gregor Mückl wrote:

> I know that this situation is a nearly complete abuse of Qt and I should 
> probably avoid creating these QAction objects in that case. :-) Still, I 
> think you might be interested in this.

Hi Gregor,

Thanks for reporting this to us. We'll add some sanity checks so that 
you in the future receive warnings for this kind of misuse, rather than 
JVM crashes.

-
Gunnar