Illegal use of nonvirtual function call
Shaun Jackman
sjackman@gmail.com
Thu May 5 17:08:00 GMT 2005
When I compile SWT with Sun's javac and run Azureus, which uses SWT,
all's well. When I compile SWT to java bytecode using gcj -C, I get an
"Illegal use of nonvirtual function call" error message:
java.lang.VerifyError: (class: org/eclipse/swt/dnd/DragSource$1,
method: handleEvent signature: (Lorg/eclipse/swt/widgets/Event;)V)
Illegal use of nonvirtualfunction call
at org.eclipse.swt.dnd.DragSource.<init>(DragSource.java:178)
at org.gudy.azureus2.ui.swt.views.MyTorrentsView.createDragDrop(MyTorrentsView.java:1270)
[Some source code snippets follow this mail.]
This looks like either a bug in SWT making use of a non-standard
"feature" in Sun's javac, or a bug in gcj. Any idea which?
I'm trying to build a package of Azureus for Debian Sarge, which uses
gcj 3.3.5. I'd be interested in knowing if the problem is fixed in
either gcj 3.4.4 or 4.0, but I'd still like to find a work-around for
3.3.5 if possible.
Please cc me in your reply. Thanks!
Shaun
gcj 3.3.5
SWT (gtk) 3.1M4
Azureus 2.3.0.0
Listener.java:
public interface Listener { void handleEvent (Event event); }
DragSource.java:178
controlListener = new Listener () {
public void handleEvent (Event event) { ... } };
MyTorrentsView.java:1270
DragSource dragSource = new DragSource(getTable(), DND.DROP_MOVE);
More information about the Java
mailing list