Thomas Fitzsimmons wrote:
Andreas Tobler wrote:
Mark Wielaard wrote:
Hi,

On Tue, 2006-05-30 at 22:43 +0200, Andreas Tobler wrote:
This really is a static function. Please keep it that way.
ld: Undefined symbols:
_cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable

?
Yeah, that is strange. When do you get that?
Well, we use it in gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
and in gnu_java_awt_peer_gtk_ComponentGraphics.c.

So for me it's only usable in gnu_java_awt_peer_gtk_ComponentGraphics.c

I may don't understand it...

OK, we figured it out. This patch and a patch from Sven to implement
ComponentGraphicsCopy crossed meaning that the
cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable function is
now indeed non-static. Which does mean that if we mark it as non-static
it has to have a common function prototype in gtkpeer.h.

Would this be something usable?

Andreas

2006-05-31  Andreas Tobler  <[EMAIL PROTECTED]>

    * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
    (cp_gtk_grab_current_drawable): Rename
    cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable to
    cp_gtk_grab_current_drawable, remove static declaration.
(Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Renamed above
    function.
(Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative): Likewise.
    * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c:
    Remove prototype of
    cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable.
    (Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf): Rename
    function.
(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf): Likewise.
    * native/jni/gtk-peer/gtkpeer.h: Add prototype for
    cp_gtk_grab_current_drawable here.

[snip]

Yes, please commit.

Thanks. Do so asap.

It would also be nice if scripts/check_jni_methods.sh checked that all public symbols in libgtkpeer.so were prefixed appropriately. If you have the GNU tools installed, you could just nm for this:

nm --dynamic --defined-only --extern-only libgtkpeer.so

Hm, as mentionend, GNU tools. Cause darwin nm doesn't like the options.

Doing this, I just noticed CairoGraphics2D_getCairoT is exported but not properly prefixed. Want to fix this one too?

You mean s/CairoGraphics2D_getCairoT/Java_gnu_java_awt_peer_gtk_CairoGraphics2D_getCairoT

I see how it fits in my schedule ;)

Andreas

Reply via email to