This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Illegal use of nonvirtual function call
- From: Shaun Jackman <sjackman at gmail dot com>
- To: java at gcc dot gnu dot org
- Date: Thu, 5 May 2005 10:06:32 -0700
- Subject: Illegal use of nonvirtual function call
- Reply-to: Shaun Jackman <sjackman at gmail dot com>
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);