[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: JNI assertion failure
From: |
Archie Cobbs |
Subject: |
Re: JNI assertion failure |
Date: |
Sat, 09 Jul 2005 13:49:07 -0500 |
User-agent: |
Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.3) Gecko/20041129 |
Archie Cobbs wrote:
With Classpath 0.16, trying to run a very simple Swing demo under JCVM,
I get a JNI assertion failure in a call to GetIntField(), because the
object
type and the fieldID are not compatible:
gnu/java/awt/peer/gtk/address@hidden not instance of
gnu/java/awt/peer/gtk/GtkGenericPeer
Here is the relevant stack trace snippet:
#7 0x29f862d7 in
Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__Lgnu_java_awt_peer_gtk_GtkComponentPeer_2
(env=0x107ed6a0, obj=0x29795698, peer=0x2979569c)
at gnu_java_awt_peer_gtk_GdkGraphics.c:154
Hmm, no response.. can anyone else confirm this problem??
It looks like this code is completely broken, because
it's trying to save a pointer in a field that doesn't
exist. Line 154 of gnu_java_awt_peer_gtk_GdkGraphics.c says:
NSA_SET_PTR (env, obj, g)
but "obj" is a gnu/java/awt/peer/gtk/GdkGraphics object, not
a gnu/java/awt/peer/gtk/GtkGenericPeer object, the class that
contains the "native_state" field.
I'm not familiar with this code so I could be completely
misunderstanding something. But it seems obviously wrong,
and on VM's that don't check proper JNI usage will result
in random memory corruption.
I'd appreciate a quick confirmation from another set of eyes...
Thanks,
-Archie
__________________________________________________________________________
Archie Cobbs * CTO, Awarix * http://www.awarix.com