reflection, loader fix (before it did offer an unloaded (not found) class as loaded...
authorjowenn <none@none>
Mon, 1 Dec 2003 15:33:30 +0000 (15:33 +0000)
committerjowenn <none@none>
Mon, 1 Dec 2003 15:33:30 +0000 (15:33 +0000)
59 files changed:
Makefile.am
builtin.c
global.h
headers.c
jni.c
jni.h
loader.c
nat/Constructor.c
nat/Method.c
nat/VMClass.c
nat/gnu_java_awt_peer_gtk_GdkFontMetrics.h
nat/gnu_java_awt_peer_gtk_GdkGraphics.h
nat/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h
nat/gnu_java_awt_peer_gtk_GtkButtonPeer.h
nat/gnu_java_awt_peer_gtk_GtkCanvasPeer.h
nat/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h
nat/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h
nat/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h
nat/gnu_java_awt_peer_gtk_GtkChoicePeer.h
nat/gnu_java_awt_peer_gtk_GtkClipboard.h
nat/gnu_java_awt_peer_gtk_GtkComponentPeer.h
nat/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h
nat/gnu_java_awt_peer_gtk_GtkFramePeer.h
nat/gnu_java_awt_peer_gtk_GtkGenericPeer.h
nat/gnu_java_awt_peer_gtk_GtkImagePainter.h
nat/gnu_java_awt_peer_gtk_GtkLabelPeer.h
nat/gnu_java_awt_peer_gtk_GtkListPeer.h
nat/gnu_java_awt_peer_gtk_GtkMainThread.h
nat/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h
nat/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h
nat/gnu_java_awt_peer_gtk_GtkMenuPeer.h
nat/gnu_java_awt_peer_gtk_GtkPanelPeer.h
nat/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h
nat/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h
nat/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h
nat/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h
nat/gnu_java_awt_peer_gtk_GtkTextComponentPeer.h
nat/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h
nat/gnu_java_awt_peer_gtk_GtkToolkit.h
nat/gnu_java_awt_peer_gtk_GtkWindowPeer.h
nat/java_awt_peer_ComponentPeer.h
nat/java_awt_peer_MenuItemPeer.h
nat/java_awt_peer_MenuPeer.h
native.c
native.h
src/cacaoh/headers.c
src/native/jni.c
src/native/jni.h
src/native/native.c
src/native/native.h
src/native/vm/Constructor.c
src/native/vm/Method.c
src/native/vm/VMClass.c
src/vm/builtin.c
src/vm/global.h
src/vm/loader.c
src/vm/tables.c
tables.c
tests/network/urltest.java

index 4661e8b73980e37c956b2e8b6e432366367bc438..e0e52ccc979aa3be4f0b8facba959ea61220994b 100644 (file)
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-# $Id: Makefile.am 677 2003-11-24 20:55:42Z twisti $
+# $Id: Makefile.am 682 2003-12-01 15:33:30Z jowenn $
 
 @SET_MAKE@
 
@@ -59,7 +59,7 @@ cacao_LDADD = \
        classpathbin/@ARCH_DIR@/native/jni/java-util/.libs/libjavautil.a \
        classpathbin/@ARCH_DIR@/native/jni/java-lang/.libs/libjavalang.a \
        classpathbin/@ARCH_DIR@/native/jni/java-lang/.libs/libjavalangreflect.a @AWT_OBJS@ @ZIP_LIBS@
-
+       
 
 cacao_DEPENDENCIES = \
        jit/libjit.a \
@@ -136,7 +136,12 @@ nativetypes.hh jit/@ARCH_DIR@/offsets.h nativetable.hh: cacaoh Makefile.am Makef
        java.lang.reflect.Proxy \
        java.lang.Double \
        java.lang.Compiler \
+       java.lang.Byte \
+       java.lang.Character \
        java.lang.Integer \
+       java.lang.Long \
+       java.lang.Short \
+       java.lang.Boolean \
        java.lang.StackTraceElement \
        java.lang.Float \
        java.lang.Object \
index ea441550006ed52551f432dbaa95ec2bf427b511..5b364eb9eb0acb4fd253a80a95170ddbc521bfaa 100644 (file)
--- a/builtin.c
+++ b/builtin.c
@@ -34,7 +34,7 @@
    calls instead of machine instructions, using the C calling
    convention.
 
-   $Id: builtin.c 669 2003-11-23 14:04:20Z edwin $
+   $Id: builtin.c 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -534,6 +534,10 @@ java_arrayheader *builtin_newarray(s4 size,vftbl *arrayvftbl)
         s4 dataoffset = desc->dataoffset;
         s4 componentsize = desc->componentsize;
 
+       if (size<0) {
+               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/NegativeArraySizeException")));
+               return NULL;
+       }
 #ifdef SIZE_FROM_CLASSINFO
         s4 actualsize = align_size(dataoffset + size * componentsize);
 #else
index d2a6cec2c423f79e96d6ee559f4b75e37bf59d5e..bfffb6ebe42a5367e947a9ff70c99a7fc8fcec4f 100644 (file)
--- a/global.h
+++ b/global.h
@@ -31,7 +31,7 @@
             Philipp Tomsich
                        Edwin Steiner
 
-   $Id: global.h 670 2003-11-23 14:36:26Z edwin $
+   $Id: global.h 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -584,6 +584,7 @@ struct classinfo {                /* class structure                          */
        listnode    listnode;         /* linkage                                  */
 
        bool        initialized;      /* true, if class already initialised       */ 
+       bool        loaded;           /* true, if class already loaded            */
        bool        linked;           /* true, if class already linked            */
        s4          index;            /* hierarchy depth (classes) or index
                                         (interfaces)                             */ 
index 3c52ec1823d4ae154499f7af0909219be3e66956..1e031ce03622b25dd0f5343e9e4c02b614506fea 100644 (file)
--- a/headers.c
+++ b/headers.c
@@ -29,7 +29,7 @@
    Changes: Mark Probst
             Philipp Tomsich
 
-   $Id: headers.c 676 2003-11-24 20:50:23Z twisti $
+   $Id: headers.c 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -59,6 +59,7 @@ void throw_classnotfoundexception()
        panic("class not found----------"); 
 }
 /*  */
+
 void throw_classnotfoundexception2(utf* classname) 
 { 
        sprintf (logtext, "Loading class: ");
@@ -66,6 +67,11 @@ void throw_classnotfoundexception2(utf* classname)
        panic("******class not found"); 
 }
 
+/* this is here to avoid link errors. We are not interested in linkagerrors in cacaoh right now*/
+void throw_linkageerror2(utf* classname) 
+{ 
+}
+
 java_objectheader *literalstring_new (utf *u)
 { return NULL; }  
 
diff --git a/jni.c b/jni.c
index 63f377e8871e0476f8f4328769b09c0e370a90f0..ab99dfe3d3df70a6c301d290104f46cf0acee518 100644 (file)
--- a/jni.c
+++ b/jni.c
@@ -1,63 +1,63 @@
-/* jni.c - implementation of JNI functions
+/********************************** jni.c *****************************************
 
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-   R. Grafl, A. Krall, C. Kruegel, C. Oates, R. Obermaisser,
-   M. Probst, S. Ring, E. Steiner, C. Thalinger, D. Thuernbeck,
-   P. Tomsich, J. Wenninger
-
-   This file is part of CACAO.
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2, or (at
-   your option) any later version.
-
-   This program is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.
-
-   Contact: cacao@complang.tuwien.ac.at
-
-   Authors: ?
-
-   $Id: jni.c 676 2003-11-24 20:50:23Z twisti $
-
-*/
+       implementation of the Java Native Interface functions                             
+       which are used in the JNI function table                                         
 
+***********************************************************************************/
 
 #include "jni.h"
-#include "types.h"
-#include "jit.h"
-#include "builtin.h"
+#include "global.h"
 #include "loader.h"
-#include "native.h"
 #include "tables.h"
-#include "asmpart.h"
-#include "toolbox/memory.h"
+#include "native.h"
+#include "builtin.h"
+#include "threads/thread.h"
+#include "nat/java_lang_Byte.h"
+#include "nat/java_lang_Character.h"
+#include "nat/java_lang_Short.h"
+#include "nat/java_lang_Integer.h"
+#include "nat/java_lang_Boolean.h"
+#include "nat/java_lang_Long.h"
+#include "nat/java_lang_Float.h"
+#include "nat/java_lang_Double.h"
 #include "nat/java_lang_Throwable.h"
+#include "jit/jit.h"
+#include "asmpart.h"   
+#define JNI_VERSION       0x00010002
+
 
+static utf* utf_char=0;
+static utf* utf_bool=0;
+static utf* utf_byte=0;
+static utf* utf_short=0;
+static utf* utf_int=0;
+static utf* utf_long=0;
+static utf* utf_float=0;
+static utf* utf_double=0;
 
 /********************* accessing instance-fields **********************************/
 
+#define setField(obj,typ,var,val) *((typ*) ((long int) obj + (long int) var->offset))=val;  
+#define getField(obj,typ,var)     *((typ*) ((long int) obj + (long int) var->offset))
+#define setfield_critical(clazz,obj,name,sig,jdatatype,val) setField(obj,jdatatype,getFieldID_critical(env,clazz,name,sig),val); 
+
+
+
 u4 get_parametercount(methodinfo *m)
 {
     utf  *descr    =  m->descriptor;    /* method-descriptor */
     char *utf_ptr  =  descr->text;      /* current position in utf-text */
     char *desc_end =  utf_end(descr);   /* points behind utf string     */
+    java_objectarray* result;
     int parametercount = 0;
+   int i;
 
     /* skip '(' */
     utf_nextu2(&utf_ptr);
 
     /* determine number of parameters */
-    while (*utf_ptr != ')') {
-        get_type(&utf_ptr, desc_end, true);
+    while ( *utf_ptr != ')' ) {
+        get_type(&utf_ptr,desc_end,true);
         parametercount++;
     }
 
@@ -66,17 +66,130 @@ u4 get_parametercount(methodinfo *m)
 
 
 
+void fill_callblock(void *obj,utf *descr,jni_callblock blk[], va_list data, char ret) {
+    char *utf__ptr  =  descr->text;      /* current position in utf-text */
+    char **utf_ptr  =  &utf__ptr;
+    char *desc_end =  utf_end(descr);   /* points behind utf string     */
+
+    int cnt;
+
+    jdouble d;
+    jlong l;
+    u4 dummy;
+    char c;
+       /*
+    log_text("fill_callblock");
+    utf_display(descr);
+    log_text("====");
+       */
+    /* skip '(' */
+    utf_nextu2(utf_ptr);
+
+    /* determine number of parameters */
+   if (obj) {
+          blk[0].itemtype=TYPE_ADR;
+          blk[0].item=(u8)(u4)obj;
+          cnt=1;
+   } else cnt=0;
+   while ( **utf_ptr != ')' ) {
+       if (*utf_ptr>=desc_end)
+               panic("illegal method descriptor");
+
+       switch (utf_nextu2(utf_ptr)) {
+       /* primitive types */
+             case 'B' :
+             case 'C' :
+             case 'S' : 
+             case 'Z' :
+                        blk[cnt].itemtype=TYPE_INT;
+                        blk[cnt].item=(u8) va_arg(data,int);
+                        break;
+             case 'I' :
+                        blk[cnt].itemtype=TYPE_INT;
+                        dummy=va_arg(data,u4);
+                        /*printf("fill_callblock: pos:%d, value:%d\n",cnt,dummy);*/
+                        blk[cnt].item=(u8)dummy;
+
+                        break;
+
+             case 'J' : 
+                        blk[cnt].itemtype=TYPE_LNG;
+                        blk[cnt].item=(u8)va_arg(data,jlong);
+                                break;
+             case 'F' : 
+                        blk[cnt].itemtype=TYPE_FLT;
+                        *((jfloat*)(&blk[cnt].item))=((jfloat)va_arg(data,jdouble));
+                        break;
+
+             case 'D' : 
+                        blk[cnt].itemtype=TYPE_DBL;
+                        *((jdouble*)(&blk[cnt].item))=(jdouble)va_arg(data,jdouble);
+                        break;
+             case 'V' : panic ("V not allowed as function parameter");
+                        break;
+             case 'L' : {
+                           while (utf_nextu2(utf_ptr)!=';')
+
+                           blk[cnt].itemtype=TYPE_ADR;
+                           blk[cnt].item=(u8)(u4)va_arg(data,void*);
+                           break;                      
+                        }
+             case '[' : {
+                         /* XXX */
+                           /* arrayclass */
+                                   char *start = *utf_ptr;
+                           char ch;
+                           while ((ch = utf_nextu2(utf_ptr))=='[')
+                           if (ch == 'L') {
+                               while (utf_nextu2(utf_ptr)!=';') {}
+                                   }
+       
+                            ch=utf_nextu2(utf_ptr);
+                           blk[cnt].itemtype=TYPE_ADR;
+                           blk[cnt].item=(u8)(u4)va_arg(data,void*);
+                           break;                      
+                        }
+       }
+       cnt++;
+   }
+
+   /*the standard doesn't say anything about return value checking, but it appears to be usefull*/
+   c=utf_nextu2(utf_ptr);
+   c=utf_nextu2(utf_ptr);
+   /*printf("%c  %c\n",ret,c);*/
+   if (ret=='O') {
+       if (!((c=='L') || (c=='['))) log_text("\n====\nWarning call*Method called for function with wrong return type\n====");
+   } else if (ret != c) log_text("\n====\nWarning call*Method called for function with wrong return type\n====");
+
+}
+
 /* XXX it could be considered if we should do typechecking here in the future */
-void fill_callblock(void *obj, utf *descr, jni_callblock blk[], va_list data, char ret)
+char fill_callblock_objA(void *obj, utf *descr, jni_callblock blk[], java_objectarray* params)
 {
     char *utf__ptr  =  descr->text;      /* current position in utf-text */
     char **utf_ptr  =  &utf__ptr;
     char *desc_end =  utf_end(descr);   /* points behind utf string     */
 
+    jobject param;
     int cnt;
+    int cnts;
 
     u4 dummy;
     char c;
+    char *cp;
+    intsDisable();
+       if (utf_char==0) {
+               utf_char=utf_new_char("java/lang/Character");
+               utf_bool=utf_new_char("java/lang/Boolean");
+               utf_byte=utf_new_char("java/lang/Byte");
+               utf_short=utf_new_char("java/lang/Short");
+               utf_int=utf_new_char("java/lang/Integer");
+               utf_long=utf_new_char("java/lang/Long");
+               utf_float=utf_new_char("java/lang/Float");
+               utf_double=utf_new_char("java/lang/Double");
+       }
+    intsRestore();
+
        /*
          log_text("fill_callblock");
          utf_display(descr);
@@ -95,85 +208,203 @@ void fill_callblock(void *obj, utf *descr, jni_callblock blk[], va_list data, ch
                cnt = 0;
        }
 
+       cnts=0;
        while (**utf_ptr != ')') {
                if (*utf_ptr >= desc_end)
                panic("illegal method descriptor");
 
                /* primitive types */
                switch (utf_nextu2(utf_ptr)) {
-               case 'B':
+               case 'B':       
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_byte) {
+                                       blk[cnt].itemtype=TYPE_INT;
+                                       blk[cnt].item = (u8) ((struct java_lang_Byte * )param)->value;
+                               } else  {
+                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                       return 0;
+                               }
+                               break;
                case 'C':
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_char) {
+                                       blk[cnt].itemtype=TYPE_INT;
+                                       blk[cnt].item = (u8) ((struct java_lang_Character * )param)->value;
+                               } else  {
+                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                       return 0;
+                               }
+                               break;
+
                case 'S': 
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_short) {
+                                       blk[cnt].itemtype=TYPE_INT;
+                                       blk[cnt].item = (u8) ((struct java_lang_Short* )param)->value;
+                               } else  {
+                                       if (param->vftbl->class->name==utf_byte) {
+                                               blk[cnt].itemtype=TYPE_INT;
+                                               blk[cnt].item = (u8) ((struct java_lang_Byte * )param)->value;
+                                       } else {
+                                               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                               return 0;
+                                       }
+                               }
+                               break;
+
                case 'Z':
-                       blk[cnt].itemtype = TYPE_INT;
-                       blk[cnt].item = (u8) va_arg(data, int);
-                       break;
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_bool) {
+                                       blk[cnt].itemtype=TYPE_INT;
+                                       blk[cnt].item = (u8) ((struct java_lang_Boolean * )param)->value;
+                               } else  {
+                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                       return 0;
+                               }
+                               break;
 
                case 'I':
-                       blk[cnt].itemtype = TYPE_INT;
-                       dummy = va_arg(data, u4);
-                       /*printf("fill_callblock: pos:%d, value:%d\n",cnt,dummy);*/
-                       blk[cnt].item = (u8) dummy;
-                       break;
-
+                               log_text("fill_callblock_objA: param 'I'");
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_int) {
+                                       blk[cnt].itemtype=TYPE_INT;
+                                       blk[cnt].item = (u8) ((struct java_lang_Integer * )param)->value;
+                                       /*printf("INT VALUE :%d\n",((struct java_lang_Integer * )param)->value);*/
+                               } else {
+                                       if (param->vftbl->class->name==utf_short) {
+                                               blk[cnt].itemtype=TYPE_INT;
+                                               blk[cnt].item = (u8) ((struct java_lang_Short* )param)->value;
+                                       } else  {
+                                               if (param->vftbl->class->name==utf_byte) {
+                                                       blk[cnt].itemtype=TYPE_INT;
+                                                       blk[cnt].item = (u8) ((struct java_lang_Byte * )param)->value;
+
+                                               } else  {
+                                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                                       return 0;
+                                               }
+                                       }
+                               }
+                               break;
                case 'J':
-                       blk[cnt].itemtype = TYPE_LNG;
-                       blk[cnt].item = (u8) va_arg(data, jlong);
-                       break;
-
-               case 'F':
-                       blk[cnt].itemtype = TYPE_FLT;
-                       *((jfloat*) (&blk[cnt].item)) = ((jfloat) va_arg(data, jdouble));
-                       break;
-
-               case 'D':
-                       blk[cnt].itemtype = TYPE_DBL;
-                       *((jdouble*) (&blk[cnt].item)) = (jdouble) va_arg(data, jdouble);
-                       break;
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_long) {
+                                       blk[cnt].itemtype=TYPE_LNG;
+                                       blk[cnt].item = (u8) ((struct java_lang_Long * )param)->value;
+                               } else  {
+                                       if (param->vftbl->class->name==utf_int) {
+                                               blk[cnt].itemtype=TYPE_LNG;
+                                               blk[cnt].item = (u8) ((struct java_lang_Integer * )param)->value;
+                                       } else {
+                                               if (param->vftbl->class->name==utf_short) {
+                                                       blk[cnt].itemtype=TYPE_LNG;
+                                                       blk[cnt].item = (u8) ((struct java_lang_Short* )param)->value;
+                                               } else  {
+                                                       if (param->vftbl->class->name==utf_byte) {
+                                                               blk[cnt].itemtype=TYPE_LNG;
+                                                               blk[cnt].item = (u8) ((struct java_lang_Byte * )param)->value;
+                                                       } else  {
+                                                               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                                               return 0;
+                                                       }
+                                               }
+                                       }
 
+                               }
+                               break;
+
+               case 'F' : 
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_float) {
+                                       blk[cnt].itemtype=TYPE_FLT;
+                                       *((jfloat*)(&blk[cnt].item))=(jfloat) ((struct java_lang_Float*)param)->value;
+                               } else  {
+                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                       return 0;
+                               }
+                               break;
+               case 'D' : 
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_double) {
+                                       blk[cnt].itemtype=TYPE_DBL;
+                                       *((jdouble*)(&blk[cnt].item))=(jdouble) ((struct java_lang_Float*)param)->value;
+                               } else  {
+                                       if (param->vftbl->class->name==utf_float) {
+                                               blk[cnt].itemtype=TYPE_DBL;
+                                               *((jdouble*)(&blk[cnt].item))=(jdouble) ((struct java_lang_Float*)param)->value;
+                                       } else  {
+                                               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                               return 0;
+                                       }
+                               }
+                               break;
                case 'V':
                        panic("V not allowed as function parameter");
                        break;
 
-               case 'L':
-                       while (utf_nextu2(utf_ptr) != ';')
-                           blk[cnt].itemtype = TYPE_ADR;
-
-                       blk[cnt].item = (u8)(u4) va_arg(data, void*);
-                       break;                  
-
-               case '[' : {
-                       /* XXX need arrayclass change? no.*/
-                       /* arrayclass */
-                       char ch;
-                       while ((ch = utf_nextu2(utf_ptr)) == '[')
-                               if (ch == 'L') {
-                                       while (utf_nextu2(utf_ptr) != ';') {}
+               case 'L': {
+                               char *start=(*utf_ptr)-1;
+                               char *end;
+
+                               while (utf_nextu2(utf_ptr) != ';')
+                               end=(*utf_ptr)+1;
+                               if (!builtin_instanceof(params->data[cnts],class_from_descriptor(start,end,0,CLASSLOAD_LOAD))) {
+                                       if (params->data[cnts]!=0) {
+                                               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                               return 0;
+                                       }                       
                                }
-                       
-                       ch = utf_nextu2(utf_ptr);
-                       blk[cnt].itemtype = TYPE_ADR;
-                       blk[cnt].item = (u8)(u4) va_arg(data, void*);
-                       break;
-               }
+                               blk[cnt].itemtype = TYPE_ADR;
+                               blk[cnt].item= (u8)(u4) (params->data[cnts]);
+                               break;                  
+
+                         }
+               case '[' :
+                       {
+                               char *start=(*utf_ptr)-1;
+                               char *end;
+
+                               char ch;
+                               while ((ch = utf_nextu2(utf_ptr)) == '[')
+                                       if (ch == 'L') {
+                                               while (utf_nextu2(utf_ptr) != ';') {}
+                                       }
+                               end=(*utf_ptr)-1;
+                               ch = utf_nextu2(utf_ptr);
+                               if (!builtin_arrayinstanceof(params->data[cnts],class_from_descriptor(start,end,0,CLASSLOAD_LOAD))) {
+                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                       return 0;
+                                       
+                               }
+       
+                               blk[cnt].itemtype = TYPE_ADR;
+                               blk[cnt].item = (u8)(u4) (params->data[cnts]);
+                               break;
+                       }
                }
                cnt++;
+               cnts++;
        }
 
-       /*the standard doesn't say anything about return value checking, but it appears to be usefull*/
        c = utf_nextu2(utf_ptr);
        c = utf_nextu2(utf_ptr);
-       /*printf("%c  %c\n",ret,c);*/
-       if (ret == 'O') {
-               if (!((c == 'L') || (c == '[')))
-                       log_text("\n====\nWarning call*Method called for function with wrong return type\n====");
-
-       } else if (ret != c)
-               log_text("\n====\nWarning call*Method called for function with wrong return type\n====");
+       return c; /*return type needed usage of the right lowlevel methods*/
 }
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+
 jmethodID get_virtual(jobject obj,jmethodID methodID) {
        if (obj->vftbl->class==methodID->class) return methodID;
        return class_resolvemethod (obj->vftbl->class, methodID->name, methodID->descriptor);
@@ -184,6 +415,8 @@ jmethodID get_nonvirtual(jclass clazz,jmethodID methodID) {
        return class_resolvemethod (clazz, methodID->name, methodID->descriptor);
 }
 
+
+
 jobject callObjectMethod (jobject obj, jmethodID methodID, va_list args)
 {      
        int argcount;
@@ -1984,6 +2217,7 @@ jstring NewString (JNIEnv *env, const jchar *buf, jsize len)
 
 
 static char emptyString[]="";
+static jchar emptyStringJ[]={0,0};
 
 /******************* returns the length of a Java string ***************************/
 
@@ -2030,14 +2264,14 @@ const jchar *GetStringChars (JNIEnv *env, jstring str, jboolean *isCopy)
                return jc;
        }
        if (isCopy) *isCopy=JNI_TRUE;
-       return emptyString;
+       return emptyStringJ;
 }
 
 /**************** native code no longer needs access to chars **********************/
 
 void ReleaseStringChars (JNIEnv *env, jstring str, const jchar *chars)
 {
-       if (chars==emptyString) return;
+       if (chars==emptyStringJ) return;
        MFREE(((jchar*) chars),jchar,((java_lang_String*) str)->count+1);
 }
 
@@ -2095,6 +2329,10 @@ jsize GetArrayLength (JNIEnv *env, jarray array)
 
 jobjectArray NewObjectArray (JNIEnv *env, jsize len, jclass clazz, jobject init)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_objectarray *j = builtin_anewarray (len, clazz);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2131,6 +2369,10 @@ void SetObjectArrayElement (JNIEnv *env, jobjectArray array, jsize index, jobjec
 
 jbooleanArray NewBooleanArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_booleanarray *j = builtin_newarray_boolean(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2139,6 +2381,10 @@ jbooleanArray NewBooleanArray (JNIEnv *env, jsize len)
 
 jbyteArray NewByteArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_bytearray *j = builtin_newarray_byte(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2147,6 +2393,10 @@ jbyteArray NewByteArray (JNIEnv *env, jsize len)
 
 jcharArray NewCharArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_chararray *j = builtin_newarray_char(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2155,6 +2405,10 @@ jcharArray NewCharArray (JNIEnv *env, jsize len)
 
 jshortArray NewShortArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_shortarray *j = builtin_newarray_short(len);   
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2163,6 +2417,10 @@ jshortArray NewShortArray (JNIEnv *env, jsize len)
 
 jintArray NewIntArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_intarray *j = builtin_newarray_int(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2171,6 +2429,10 @@ jintArray NewIntArray (JNIEnv *env, jsize len)
 
 jlongArray NewLongArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_longarray *j = builtin_newarray_long(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2179,6 +2441,10 @@ jlongArray NewLongArray (JNIEnv *env, jsize len)
 
 jfloatArray NewFloatArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_floatarray *j = builtin_newarray_float(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2187,6 +2453,10 @@ jfloatArray NewFloatArray (JNIEnv *env, jsize len)
 
 jdoubleArray NewDoubleArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_doublearray *j = builtin_newarray_double(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2867,6 +3137,150 @@ struct JNI_Table envTable = {
 JNIEnv env = &envTable;
 
 
+
+
+
+
+
+
+jobject *jni_method_invokeNativeHelper(JNIEnv *env,struct methodinfo *methodID,jobject obj, java_objectarray *params) {
+       int argcount;
+       jni_callblock *blk;
+       jobject ret;
+       char retT;
+       jobject retVal;
+       if (methodID==0) {
+               exceptionptr = native_new_and_init(class_java_lang_NoSuchMethodError); 
+               return 0;
+       }
+        argcount=get_parametercount(methodID);
+
+       if (obj && (! builtin_instanceof((java_objectheader*)obj,methodID->class))) {
+               exceptionptr = native_new_and_init(class_java_lang_NoSuchMethodError);
+               return 0;
+       }
+
+       if  (argcount>3) {
+               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+               log_text("Too many arguments. invokeNativeHelper does not support that");
+               return 0;
+       }
+
+       if ( ((!params) && (argcount!=0)) || 
+               (params && (params->header.size!=argcount))
+          ) {
+               exceptionptr = native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+               return 0;
+       }
+
+       blk = MNEW(jni_callblock, 4 /*argcount+2*/);
+
+       retT=fill_callblock_objA(obj,methodID->descriptor,blk,params);
+
+       switch (retT) {
+               case 'V':       (void)asm_calljavafunction2(methodID,argcount+1,(argcount+1)*sizeof(jni_callblock),blk);
+                               retVal=native_new_and_init(loader_load(utf_new_char("java/lang/Void")));
+                               break;
+               case 'I':       {
+                                       s4 intVal;      
+                                       intVal=(s4)asm_calljavafunction2(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Integer")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(I)V")),intVal);
+                               }
+                               break;
+               case 'B':       {
+                                       s4 intVal;      
+                                       intVal=(s4)asm_calljavafunction2(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Byte")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(B)V")),intVal);
+                               }
+                               break;
+               case 'C':       {
+                                       s4 intVal;      
+                                       intVal=(s4)asm_calljavafunction2(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Character")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(C)V")),intVal);
+                               }
+                               break;
+               case 'S':       {
+                                       s4 intVal;      
+                                       intVal=(s4)asm_calljavafunction2(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Short")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(S)V")),intVal);
+                               }
+
+               case 'Z':       {
+                                       s4 intVal;      
+                                       intVal=(s4)asm_calljavafunction2(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Boolean")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(Z)V")),intVal);
+                               }
+                               break;
+               case 'J':       {
+                                       jlong intVal;   
+                                       intVal=asm_calljavafunction2long(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Long")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(J)V")),intVal);
+                               }
+                               break;
+               case 'F':       {
+                                       jdouble floatVal;       
+                                       floatVal=asm_calljavafunction2double(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Float")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(F)V")),floatVal);
+                               }
+                               break;
+               case 'D':       {
+                                       jdouble floatVal;       
+                                       floatVal=asm_calljavafunction2double(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Double")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(D)V")),floatVal);
+                               }
+                               break;
+
+               case 'L':       /* fall through */
+               case '[':       retVal=asm_calljavafunction2(methodID,argcount+1,(argcount+1)*sizeof(jni_callblock),blk);
+                               break;
+               default:        { 
+                                       /* if this happens the acception has already been set by fill_callblock_objA*/
+                                       MFREE(blk, jni_callblock, 4 /*argcount+2*/);
+                                       return (jobject*)0;
+                               }
+       }
+       MFREE(blk, jni_callblock, 4 /*argcount+2*/);
+
+       if (exceptionptr)
+               exceptionptr=native_new_and_init(loader_load("java/lang/reflect/InvocationTargetException"));
+       return retVal;  
+
+}
+
+
+
 /*
  * These are local overrides for various environment variables in Emacs.
  * Please do not remove this and leave it at the end of the file, where
diff --git a/jni.h b/jni.h
index f97b52e2f9f3c6536e878e25630a76ac59952841..4c0459fbf595c176a5b8cbc3a3ba6d3e98e3fc0c 100644 (file)
--- a/jni.h
+++ b/jni.h
@@ -26,7 +26,7 @@
 
    Authors: ?
 
-   $Id: jni.h 676 2003-11-24 20:50:23Z twisti $
+   $Id: jni.h 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -500,6 +500,7 @@ void SetDoubleField(JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
 #define getField(obj,typ,var)     *((typ*) ((long int) obj + (long int) var->offset))
 #define setfield_critical(clazz,obj,name,sig,jdatatype,val) setField(obj,jdatatype,getFieldID_critical(env,clazz,name,sig),val);
 
+jobject *jni_method_invokeNativeHelper(JNIEnv *env,struct methodinfo *mi,jobject obj, java_objectarray *params);
 #endif /* _JNI_H */
 
 
index 21ab14c86850dccc94f393a14ae2738c69c8310f..8ff55a17fa7cf07d47c57625ddbb5e1ba55a5655 100644 (file)
--- a/loader.c
+++ b/loader.c
@@ -29,7 +29,7 @@
             Roman Obermaiser
             Mark Probst
 
-   $Id: loader.c 680 2003-11-24 23:12:29Z twisti $
+   $Id: loader.c 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -1501,7 +1501,7 @@ static int class_load(classinfo *c)
           add to list of unlinked classes                */
        list_remove (&unloadedclasses, c);
        list_addlast (&unlinkedclasses, c);
-
+       c->loaded=true;
        return true;
 }
 
@@ -1653,6 +1653,8 @@ class_new_array(classinfo *c)
      * Array classes which are created after the other classes have been
      * loaded and linked are linked explicitely.
      */
+        c->loaded=true;
+     
        if (loader_inited)
                loader_load(c->name);
 }
@@ -2762,10 +2764,23 @@ classinfo *loader_load (utf *topname)
                loadingtime += (stoptime-starttime);
                }
 
-       intsRestore();                          /* schani */
 
        loader_load_running--;
        
+       /* check if a former loader_load call tried to load/link the class and failed.
+               This is needed because the class didn't appear in the undloadclasses or unlinkedclasses list during this class; */
+       if (top) {
+               if (!top->loaded) {
+                       throw_classnotfoundexception2(top->name);
+                       top=NULL;
+               } else if  (!top->linked) {
+                       throw_linkageerror2(top->name);
+                       top=NULL;
+               }
+       }
+
+       intsRestore();                          /* schani */
+
        return top; 
 }
 
@@ -2786,9 +2801,10 @@ void create_primitive_classes()
                classinfo *c = class_new ( utf_new_char(primitivetype_table[i].name) );
                 c -> classUsed = NOTUSED; /* not used initially CO-RT */               
                c -> impldBy = NULL;
-
+               
                /* prevent loader from loading primitive class */
                list_remove (&unloadedclasses, c);
+               c->loaded=true;
                /* add to unlinked classes */
                list_addlast (&unlinkedclasses, c);             
                c -> super = class_java_lang_Object;
@@ -2806,6 +2822,7 @@ void create_primitive_classes()
                if (primitivetype_table[i].arrayname) {
                        c = class_new( utf_new_char(primitivetype_table[i].arrayname) );
                        primitivetype_table[i].arrayclass = c;
+                       c->loaded=true;
                        if (!c->linked) class_link(c);
                        primitivetype_table[i].arrayvftbl = c->vftbl;
                }
index 2c17c765515a6ef3ba21ec74d908eb365b135c3b..d8826e01a55e627d2684b4fd6b5e345429673a7c 100644 (file)
@@ -60,8 +60,9 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co
 
 
         m = &((classinfo*)clazz)->methods[this->slot];
-       if (!((m->name == utf_new_char("<init>")) && 
-                  (m->descriptor == create_methodsig(this->parameterTypes,"V"))))
+       if (!((m->name == utf_new_char("<init>"))))
+/* && 
+                  (m->descriptor == create_methodsig(this->parameterTypes,"V"))))*/
        {
                 if (verbose) {
                         sprintf(logtext, "Warning: class has no instance-initializer of specified type: ");
@@ -77,7 +78,7 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co
 
 /*     log_text("calling initializer");*/
         /* call initializer */
-
+#if 0
        switch (this->parameterTypes->header.size) {
                case 0: exceptionptr=asm_calljavamethod (m, o, NULL, NULL, NULL);
                        break;
@@ -91,6 +92,11 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co
                default:
                        log_text("Not supported number of arguments in Java_java_lang_reflect_Constructor");
        }
+#endif
+               /*utf_display(m->descriptor);
+               log_text("calling constructor");*/
+               (void) jni_method_invokeNativeHelper(env, m ,o, parameters); 
+
         return o;
 }
 
@@ -100,7 +106,7 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co
  * Signature: ()I
  */
 JNIEXPORT s4 JNICALL Java_java_lang_reflect_Constructor_getModifiers (JNIEnv *env ,  struct java_lang_reflect_Constructor* this ) {
-       log_text("Java_java_lang_reflect_Constructor_getModifiers called");
+/*     log_text("Java_java_lang_reflect_Constructor_getModifiers called");*/
         classinfo *c=(classinfo*)(this->clazz);
         if ((this->slot<0) || (this->slot>=c->methodscount))
                 panic("error illegal slot for method in class (getReturnType)");
index 631256e86fa0d1e13a12a9624622e71b22630623..d5371904a3aaa4756c7ec8d95a7a8f5a234e06eb 100644 (file)
@@ -2,6 +2,9 @@
 
 
 #include "jni.h"
+#include "loader.h"
+#include "global.h"
+#include "tables.h"
 #include "types.h"
 #include "builtin.h"
 #include "native.h"
@@ -72,10 +75,32 @@ JNIEXPORT java_objectarray* JNICALL Java_java_lang_reflect_Method_getExceptionTy
  * Method:    invokeNative
  * Signature: (Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Class;I)Ljava/lang/Object;
  */
-JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Method_invokeNative (JNIEnv *env ,  struct java_lang_reflect_Method* this , struct java_lang_Object* par1, java_objectarray* par2, struct java_lang_Class* par3, s4 par4)
+JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Method_invokeNative (JNIEnv *env ,  
+               struct java_lang_reflect_Method* this , struct java_lang_Object* obj, 
+               java_objectarray* params, struct java_lang_Class* declaringClass, s4 slot)
 {
-       log_text("Java_java_lang_reflect_Method_invokeNative called");
+
+    struct methodinfo *mi;
+    classinfo *c=(classinfo*)(declaringClass);
+    if ((slot<0) || (slot>=c->methodscount)) {
+                panic("error illegal slot for method in class(getParameterTypes)");
+    }
+
+    mi=&(c->methods[this->slot]);
+    if ( ((mi->flags & ACC_STATIC) && (obj))
+        || (!(mi->flags & ACC_STATIC) && (!obj)) ) {
+        (*env)->ThrowNew(env,loader_load(utf_new_char("java/lang/NullPointerException")),
+               "Static mismatch in Java_java_lang_reflect_Method_invokeNative");
+        return 0;
+    }
+
+    if (obj && (!builtin_instanceof((java_objectheader*)obj,c))) {
+        (*env)->ThrowNew(env,loader_load(utf_new_char("java/lang/IllegalArgumentException")),
+               "Object parameter of wrong type in Java_java_lang_reflect_Method_invokeNative");
        return 0;
+    }
+
+    return jni_method_invokeNativeHelper(env,mi,obj,params);
 }
 
 
index d0c52857250f15ecc001063923eee30ab437dd4b..88fa1807ca929d7890ca8dc32dace36bf4e8bfb1 100644 (file)
@@ -41,19 +41,19 @@ JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_forName(JNIEnv
         /* create utf string in which '.' is replaced by '/' */
         u = javastring_toutf(s, true);
         
-        if ( !(c = class_get(u)) ) {
-            log_text("forName: would need classloader");
-            /*utf_display(u);*/
-            
             c = loader_load(u);
             if (c == NULL) {
                 /* class was not loaded. raise exception */
-                exceptionptr = 
-                    native_new_and_init_string(class_java_lang_ClassNotFoundException, s);
-                return NULL;
-            }
-        }
+               if (! exceptionptr) {
+                       if (runverbose)
+                               log_text("Setting class not found exception");
+                       exceptionptr = 
+                           native_new_and_init_string(class_java_lang_ClassNotFoundException, s);
+               }
+           return NULL;
 
+       }
+       /*log_text("Returning class");*/
        use_class_as_object (c);
        return (java_lang_Class*) c;
 }
@@ -115,10 +115,11 @@ JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredConstructo
 
 
     
-    log_text("Java_java_lang_VMClass_getDeclaredConstructors");
+   log_text("Java_java_lang_VMClass_getDeclaredConstructors");
     utf_display(c->name);
     printf("\n");
-    class_showmethods(c);
+/*    class_showmethods(c);
+    class_showmethods(loader_load(utf_new_char("java/lang/Class")));*/
 
 
     /* determine number of constructors */
@@ -127,7 +128,6 @@ JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredConstructo
                (c->methods[i].name==utf_constr)) public_methods++;
 
     class_constructor = (classinfo*) loader_load(utf_new_char ("java/lang/reflect/Constructor"));
-
     if (!class_constructor) 
        return NULL;
 
@@ -492,12 +492,52 @@ JNIEXPORT s4 JNICALL Java_java_lang_VMClass_getModifiers ( JNIEnv *env ,  struct
  */
 JNIEXPORT struct java_lang_String* JNICALL Java_java_lang_VMClass_getName ( JNIEnv *env ,  struct java_lang_VMClass* this)
 {
+    u4 dimCnt;
+    classinfo *c = (classinfo*) (this->vmData);
 
-       u4 i;
-       classinfo *c = (classinfo*) (this->vmData);
-       java_lang_String *s = (java_lang_String*) javastring_new(c->name);
+    char *utf__ptr  =  c->name->text;      /* current position in utf-text */
+    char **utf_ptr  =  &utf__ptr;
+    char *desc_end =  utf_end(c->name);   /* points behind utf string     */
+    java_lang_String *s;
+    char *str;
+    s4   len;
+    s4   i;
+    if (runverbose) log_text("Java_java_lang_VMClass_getName");
+
+    dimCnt=0;
+    while ( *utf_ptr != desc_end ) {
+       if (utf_nextu2(utf_ptr)=='[') dimCnt++;
+       else break;
+    }
+    utf__ptr=(*utf_ptr)-1;
+
+    len=0;
+    if (((*utf_ptr)+1)==desc_end) {
+           for (i=0;i<PRIMITIVETYPE_COUNT;i++) {
+               if (primitivetype_table[i].typesig==(*utf__ptr)) {
+                       len=dimCnt*2+strlen(primitivetype_table[i].name);
+                       str=MNEW(char,len+1);
+                       strcpy(str,primitivetype_table[i].name);
+                       break;
+               }
+           }
+    }
+    if (len==0) {
+       len=dimCnt+strlen(c->name->text);
+       str=MNEW(char,len+1);
+       strcpy(str,utf__ptr);      
+    }  
+
+    dimCnt=len-2*dimCnt;
+    str[len]=0;
+    for (i=len-1;i>=dimCnt;i=i-2) {
+       str[i]=']';
+       str[i-1]='[';
+    }
+    s=(java_lang_String*)javastring_new(utf_new_char(str));
+    MFREE(str,char,len+1);
 
-       if (!s) return NULL;
+    if (!s) return NULL;
 
        /* return string where '/' is replaced by '.' */
        for (i=0; i<s->value->header.size; i++) {
index 456f9597967d80983945808e7c97e9b82735adb2..5b59a712d4b0cb3ce54db519d17541eb3e6b3b24 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GDKFONTMETRICS_H
+#define _GNU_JAVA_AWT_PEER_GTK_GDKFONTMETRICS_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GdkFontMetrics */
 
 typedef struct gnu_java_awt_peer_gtk_GdkFontMetrics {
@@ -9,15 +12,21 @@ typedef struct gnu_java_awt_peer_gtk_GdkFontMetrics {
    java_intarray* metrics;
 } gnu_java_awt_peer_gtk_GdkFontMetrics;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkFontMetrics
  * Method:    initState
  * Signature: (Ljava/lang/String;I)[I
  */
-JNIEXPORT java_intarray* JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_initState (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkFontMetrics* this , struct java_lang_String* par1, s4 par2);
+JNIEXPORT java_intarray* JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_initState(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkFontMetrics* this, struct java_lang_String* par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkFontMetrics
  * Method:    stringWidth
  * Signature: (Ljava/lang/String;)I
  */
-JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_stringWidth (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkFontMetrics* this , struct java_lang_String* par1);
+JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_stringWidth(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkFontMetrics* this, struct java_lang_String* par1);
+
+#endif
+
index 9afe724d4e68446be7162a35d8a84f88bee36ea7..3cf09dd4c691548aa0c8a03157ff74777e2a3ff7 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GDKGRAPHICS_H
+#define _GNU_JAVA_AWT_PEER_GTK_GDKGRAPHICS_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GdkGraphics */
 
 typedef struct gnu_java_awt_peer_gtk_GdkGraphics {
@@ -14,135 +17,181 @@ typedef struct gnu_java_awt_peer_gtk_GdkGraphics {
    s4 yOffset;
 } gnu_java_awt_peer_gtk_GdkGraphics;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    initState
  * Signature: (Lgnu/java/awt/peer/gtk/GtkComponentPeer;)[I
  */
-JNIEXPORT java_intarray* JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_initState (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , struct gnu_java_awt_peer_gtk_GtkComponentPeer* par1);
+JNIEXPORT java_intarray* JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_initState(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, struct gnu_java_awt_peer_gtk_GtkComponentPeer* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    initState
  * Signature: (II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics0_initState (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics0_initState(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    copyState
  * Signature: (Lgnu/java/awt/peer/gtk/GdkGraphics;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyState (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , struct gnu_java_awt_peer_gtk_GdkGraphics* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyState(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, struct gnu_java_awt_peer_gtk_GdkGraphics* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    clearRect
  * Signature: (IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3, s4 par4);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3, s4 par4);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    copyArea
  * Signature: (IIIIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyArea (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3, s4 par4, s4 par5, s4 par6);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyArea(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3, s4 par4, s4 par5, s4 par6);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    dispose
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_dispose (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_dispose(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    copyPixmap
  * Signature: (Ljava/awt/Graphics;IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyPixmap (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , struct java_awt_Graphics* par1, s4 par2, s4 par3, s4 par4, s4 par5);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyPixmap(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, struct java_awt_Graphics* par1, s4 par2, s4 par3, s4 par4, s4 par5);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    drawLine
  * Signature: (IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawLine (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3, s4 par4);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawLine(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3, s4 par4);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    drawArc
  * Signature: (IIIIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawArc (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3, s4 par4, s4 par5, s4 par6);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawArc(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3, s4 par4, s4 par5, s4 par6);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    fillArc
  * Signature: (IIIIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillArc (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3, s4 par4, s4 par5, s4 par6);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillArc(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3, s4 par4, s4 par5, s4 par6);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    drawOval
  * Signature: (IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawOval (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3, s4 par4);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawOval(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3, s4 par4);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    fillOval
  * Signature: (IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillOval (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3, s4 par4);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillOval(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3, s4 par4);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    drawPolygon
  * Signature: ([I[II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawPolygon (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , java_intarray* par1, java_intarray* par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawPolygon(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, java_intarray* par1, java_intarray* par2, s4 par3);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    fillPolygon
  * Signature: ([I[II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillPolygon (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , java_intarray* par1, java_intarray* par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillPolygon(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, java_intarray* par1, java_intarray* par2, s4 par3);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    drawPolyline
  * Signature: ([I[II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawPolyline (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , java_intarray* par1, java_intarray* par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawPolyline(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, java_intarray* par1, java_intarray* par2, s4 par3);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    drawRect
  * Signature: (IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawRect (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3, s4 par4);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawRect(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3, s4 par4);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    fillRect
  * Signature: (IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillRect (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3, s4 par4);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillRect(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3, s4 par4);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    drawString
  * Signature: (Ljava/lang/String;IILjava/lang/String;I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , struct java_lang_String* par1, s4 par2, s4 par3, struct java_lang_String* par4, s4 par5);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, struct java_lang_String* par1, s4 par2, s4 par3, struct java_lang_String* par4, s4 par5);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    setClipRectangle
  * Signature: (IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setClipRectangle (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3, s4 par4);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setClipRectangle(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3, s4 par4);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    setFGColor
  * Signature: (III)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setFGColor (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setFGColor(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2, s4 par3);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    setFunction
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setFunction (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setFunction(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkGraphics
  * Method:    translateNative
  * Signature: (II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_translateNative (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkGraphics* this , s4 par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_translateNative(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkGraphics* this, s4 par1, s4 par2);
+
+#endif
+
index fe9dd76572a1a5fd1e16a7fe96f391b749f5cf6b..fb54ab8d2af73ea15da4e9ae40b3260835eb28a2 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GDKPIXBUFDECODER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GDKPIXBUFDECODER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GdkPixbufDecoder */
 
 typedef struct gnu_java_awt_peer_gtk_GdkPixbufDecoder {
@@ -11,27 +14,37 @@ typedef struct gnu_java_awt_peer_gtk_GdkPixbufDecoder {
    struct java_util_Vector* curr;
 } gnu_java_awt_peer_gtk_GdkPixbufDecoder;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkPixbufDecoder
  * Method:    initStaticState
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState (JNIEnv *env , jclass clazz );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState(JNIEnv *env, jclass clazz);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkPixbufDecoder
  * Method:    initState
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkPixbufDecoder* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkPixbufDecoder* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkPixbufDecoder
  * Method:    pumpBytes
  * Signature: ([BI)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkPixbufDecoder* this , java_bytearray* par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkPixbufDecoder* this, java_bytearray* par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GdkPixbufDecoder
  * Method:    finish
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GdkPixbufDecoder* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish(JNIEnv *env, struct gnu_java_awt_peer_gtk_GdkPixbufDecoder* this);
+
+#endif
+
index bf58bbf2576dae10b7468273ff4d077167f4bf74..1fe90d58de9402976f9a37a5ebe3fe0c492116c6 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKBUTTONPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKBUTTONPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkButtonPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkButtonPeer {
@@ -10,21 +13,29 @@ typedef struct gnu_java_awt_peer_gtk_GtkButtonPeer {
    struct java_awt_Insets* insets;
 } gnu_java_awt_peer_gtk_GtkButtonPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkButtonPeer
  * Method:    create
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkButtonPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkButtonPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkButtonPeer
  * Method:    gtkSetFont
  * Signature: (Ljava/lang/String;II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetFont (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkButtonPeer* this , struct java_lang_String* par1, s4 par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetFont(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkButtonPeer* this, struct java_lang_String* par1, s4 par2, s4 par3);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkButtonPeer
  * Method:    gtkWidgetSetForeground
  * Signature: (III)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetSetForeground (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkButtonPeer* this , s4 par1, s4 par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetSetForeground(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkButtonPeer* this, s4 par1, s4 par2, s4 par3);
+
+#endif
+
index 60ff4a2d1b5bcac7981ea695bc9564db842b2b0b..cd5087b0962935e3a6164de2790b21b1beb63a2c 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKCANVASPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKCANVASPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkCanvasPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkCanvasPeer {
@@ -10,9 +13,13 @@ typedef struct gnu_java_awt_peer_gtk_GtkCanvasPeer {
    struct java_awt_Insets* insets;
 } gnu_java_awt_peer_gtk_GtkCanvasPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkCanvasPeer
  * Method:    create
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCanvasPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkCanvasPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCanvasPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkCanvasPeer* this);
+
+#endif
+
index 83d301012a5b28b99b26bf0c1fc2bfd45d302ca8..ac5af95055fc1bf316a8d76bb77cd194f71e2a18 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKCHECKBOXGROUPPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKCHECKBOXGROUPPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer {
@@ -8,15 +11,21 @@ typedef struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer {
    struct java_lang_Object* awtWidget;
 } gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer
  * Method:    dispose
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_dispose (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_dispose(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer
  * Method:    remove
  * Signature: (Lgnu/java/awt/peer/gtk/GtkCheckboxPeer;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_remove (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer* this , struct gnu_java_awt_peer_gtk_GtkCheckboxPeer* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_remove(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer* this, struct gnu_java_awt_peer_gtk_GtkCheckboxPeer* par1);
+
+#endif
+
index a900a565f19dbaf7c56155987c89defec2a63933..8217af064c5a72c18f7f3a512d8abf9a1b20fd96 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKCHECKBOXMENUITEMPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKCHECKBOXMENUITEMPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer {
@@ -8,15 +11,21 @@ typedef struct gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer {
    struct java_lang_Object* awtWidget;
 } gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer
  * Method:    create
  * Signature: (Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer* this , struct java_lang_String* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer* this, struct java_lang_String* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer
  * Method:    setState
  * Signature: (Z)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_setState (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_setState(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer* this, s4 par1);
+
+#endif
+
index abee7e1b94a2a27aa3a5880c2fa78542b99171ff..f2948f139f9e899abe35c1c0ceabf8bd3012a908 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKCHECKBOXPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKCHECKBOXPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkCheckboxPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkCheckboxPeer {
@@ -11,21 +14,29 @@ typedef struct gnu_java_awt_peer_gtk_GtkCheckboxPeer {
    struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer* old_group;
 } gnu_java_awt_peer_gtk_GtkCheckboxPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkCheckboxPeer
  * Method:    nativeCreate
  * Signature: (Lgnu/java/awt/peer/gtk/GtkCheckboxGroupPeer;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeCreate (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkCheckboxPeer* this , struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeCreate(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkCheckboxPeer* this, struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkCheckboxPeer
  * Method:    nativeSetCheckboxGroup
  * Signature: (Lgnu/java/awt/peer/gtk/GtkCheckboxGroupPeer;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkCheckboxPeer* this , struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkCheckboxPeer* this, struct gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkCheckboxPeer
  * Method:    connectHooks
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectHooks (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkCheckboxPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectHooks(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkCheckboxPeer* this);
+
+#endif
+
index 7e882a3cc9e926c4dd2d98b2ba3aa332d5a0bd5a..33cfb0e17e742403e682b5c3c5eb869e42624016 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKCHOICEPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKCHOICEPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkChoicePeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkChoicePeer {
@@ -10,33 +13,45 @@ typedef struct gnu_java_awt_peer_gtk_GtkChoicePeer {
    struct java_awt_Insets* insets;
 } gnu_java_awt_peer_gtk_GtkChoicePeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkChoicePeer
  * Method:    create
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkChoicePeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkChoicePeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkChoicePeer
  * Method:    append
  * Signature: ([Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_append (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkChoicePeer* this , java_objectarray* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_append(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkChoicePeer* this, java_objectarray* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkChoicePeer
  * Method:    add
  * Signature: (Ljava/lang/String;I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_add (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkChoicePeer* this , struct java_lang_String* par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_add(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkChoicePeer* this, struct java_lang_String* par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkChoicePeer
  * Method:    remove
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_remove (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkChoicePeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_remove(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkChoicePeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkChoicePeer
  * Method:    select
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_select (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkChoicePeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_select(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkChoicePeer* this, s4 par1);
+
+#endif
+
index 93fcb31e95bf9d4dd94ff67ab34bfc930e39ef38..9da8e387b0853e0e8c557ac40924ad2d746b0005 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKCLIPBOARD_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKCLIPBOARD_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkClipboard */
 
 typedef struct gnu_java_awt_peer_gtk_GtkClipboard {
@@ -9,21 +12,29 @@ typedef struct gnu_java_awt_peer_gtk_GtkClipboard {
    struct java_lang_String* name;
 } gnu_java_awt_peer_gtk_GtkClipboard;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkClipboard
  * Method:    initNativeState
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkClipboard* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkClipboard* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkClipboard
  * Method:    requestStringConversion
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkClipboard_requestStringConversion (JNIEnv *env , jclass clazz );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkClipboard_requestStringConversion(JNIEnv *env, jclass clazz);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkClipboard
  * Method:    selectionGet
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkClipboard_selectionGet (JNIEnv *env , jclass clazz );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkClipboard_selectionGet(JNIEnv *env, jclass clazz);
+
+#endif
+
index 121d9acc150b779b7c096ddd9c12d6f5435870e5..b0cae787fe562de369147a14b816d63cd1c9a79a 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKCOMPONENTPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKCOMPONENTPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkComponentPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkComponentPeer {
@@ -10,111 +13,149 @@ typedef struct gnu_java_awt_peer_gtk_GtkComponentPeer {
    struct java_awt_Insets* insets;
 } gnu_java_awt_peer_gtk_GtkComponentPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    isEnabled
  * Signature: ()Z
  */
-JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isEnabled (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this );
+JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isEnabled(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    modalHasGrab
  * Signature: ()Z
  */
-JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_modalHasGrab (JNIEnv *env , jclass clazz );
+JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_modalHasGrab(JNIEnv *env, jclass clazz);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    gtkWidgetGetForeground
  * Signature: ()[I
  */
-JNIEXPORT java_intarray* JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetForeground (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this );
+JNIEXPORT java_intarray* JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetForeground(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    gtkWidgetGetBackground
  * Signature: ()[I
  */
-JNIEXPORT java_intarray* JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetBackground (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this );
+JNIEXPORT java_intarray* JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetBackground(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    gtkWidgetSetVisible
  * Signature: (Z)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetVisible (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetVisible(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    gtkWidgetGetDimensions
  * Signature: ([I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetDimensions (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , java_intarray* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetDimensions(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, java_intarray* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    gtkWidgetGetLocationOnScreen
  * Signature: ([I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , java_intarray* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, java_intarray* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    gtkWidgetSetCursor
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    gtkWidgetSetBackground
  * Signature: (III)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetBackground (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , s4 par1, s4 par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetBackground(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, s4 par1, s4 par2, s4 par3);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    gtkWidgetSetForeground
  * Signature: (III)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetForeground (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , s4 par1, s4 par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetForeground(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, s4 par1, s4 par2, s4 par3);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    connectHooks
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    requestFocus
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_requestFocus (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_requestFocus(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    setNativeBounds
  * Signature: (IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , s4 par1, s4 par2, s4 par3, s4 par4);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, s4 par1, s4 par2, s4 par3, s4 par4);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    set
  * Signature: (Ljava/lang/String;Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , struct java_lang_String* par1, struct java_lang_String* par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, struct java_lang_String* par1, struct java_lang_String* par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    set
  * Signature: (Ljava/lang/String;Z)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer0_set (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , struct java_lang_String* par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer0_set(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, struct java_lang_String* par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    set
  * Signature: (Ljava/lang/String;I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer1_set (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , struct java_lang_String* par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer1_set(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, struct java_lang_String* par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    set
  * Signature: (Ljava/lang/String;F)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer2_set (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , struct java_lang_String* par1, float par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer2_set(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, struct java_lang_String* par1, float par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkComponentPeer
  * Method:    set
  * Signature: (Ljava/lang/String;Ljava/lang/Object;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer3_set (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkComponentPeer* this , struct java_lang_String* par1, struct java_lang_Object* par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer3_set(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkComponentPeer* this, struct java_lang_String* par1, struct java_lang_Object* par2);
+
+#endif
+
index 7511ec044630d84f31d281c77248c74a9d12777f..91aeca945e799234d13d4c624ac002c2f50a5849 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKFILEDIALOGPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKFILEDIALOGPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkFileDialogPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkFileDialogPeer {
@@ -13,21 +16,29 @@ typedef struct gnu_java_awt_peer_gtk_GtkFileDialogPeer {
    s4 oldState;
 } gnu_java_awt_peer_gtk_GtkFileDialogPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkFileDialogPeer
  * Method:    create
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkFileDialogPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkFileDialogPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkFileDialogPeer
  * Method:    setFile
  * Signature: (Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_setFile (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkFileDialogPeer* this , struct java_lang_String* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_setFile(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkFileDialogPeer* this, struct java_lang_String* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkFileDialogPeer
  * Method:    connectHooks
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_connectHooks (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkFileDialogPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_connectHooks(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkFileDialogPeer* this);
+
+#endif
+
index 479320b4db1ea9e66470ca1fc7191ff1c4c2316d..5feff9a25fff90756b57ffe89e0bf2dddc025da5 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKFRAMEPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKFRAMEPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkFramePeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkFramePeer {
@@ -14,15 +17,21 @@ typedef struct gnu_java_awt_peer_gtk_GtkFramePeer {
    s4 menuBarHeight;
 } gnu_java_awt_peer_gtk_GtkFramePeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkFramePeer
  * Method:    getMenuBarHeight
  * Signature: ()I
  */
-JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_getMenuBarHeight (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkFramePeer* this );
+JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_getMenuBarHeight(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkFramePeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkFramePeer
  * Method:    setMenuBarPeer
  * Signature: (Ljava/awt/peer/MenuBarPeer;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarPeer (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkFramePeer* this , struct java_awt_peer_MenuBarPeer* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarPeer(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkFramePeer* this, struct java_awt_peer_MenuBarPeer* par1);
+
+#endif
+
index 00bd77dd78aefa0ae68cf4ccdad80423eaab8a7a..ec73109a49bedaa3793d5b8d88f290fe74eacba8 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKGENERICPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKGENERICPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkGenericPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkGenericPeer {
@@ -8,9 +11,13 @@ typedef struct gnu_java_awt_peer_gtk_GtkGenericPeer {
    struct java_lang_Object* awtWidget;
 } gnu_java_awt_peer_gtk_GtkGenericPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkGenericPeer
  * Method:    dispose
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkGenericPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkGenericPeer* this);
+
+#endif
+
index 9ab4a3cf2b9ecad888c4a0826eaa90e7b2d5b6e4..701e2e3d2f9890a45c99263e4b9b9fbe4b0ee4da 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKIMAGEPAINTER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKIMAGEPAINTER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkImagePainter */
 
 typedef struct gnu_java_awt_peer_gtk_GtkImagePainter {
@@ -21,9 +24,13 @@ typedef struct gnu_java_awt_peer_gtk_GtkImagePainter {
    s4 s_height;
 } gnu_java_awt_peer_gtk_GtkImagePainter;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkImagePainter
  * Method:    drawPixels
  * Signature: (Lgnu/java/awt/peer/gtk/GdkGraphics;IIIIIII[III[D)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkImagePainter_drawPixels (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkImagePainter* this , struct gnu_java_awt_peer_gtk_GdkGraphics* par1, s4 par2, s4 par3, s4 par4, s4 par5, s4 par6, s4 par7, s4 par8, java_intarray* par9, s4 par10, s4 par11, java_doublearray* par12);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkImagePainter_drawPixels(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkImagePainter* this, struct gnu_java_awt_peer_gtk_GdkGraphics* par1, s4 par2, s4 par3, s4 par4, s4 par5, s4 par6, s4 par7, s4 par8, java_intarray* par9, s4 par10, s4 par11, java_doublearray* par12);
+
+#endif
+
index 92e3209309a51e5276afa4be6f7e41f4145836a8..6020b50316cd1f3f87fff02fb7fd0a4e11185e4a 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKLABELPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKLABELPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkLabelPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkLabelPeer {
@@ -10,21 +13,29 @@ typedef struct gnu_java_awt_peer_gtk_GtkLabelPeer {
    struct java_awt_Insets* insets;
 } gnu_java_awt_peer_gtk_GtkLabelPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkLabelPeer
  * Method:    create
  * Signature: (Ljava/lang/String;F)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkLabelPeer* this , struct java_lang_String* par1, float par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkLabelPeer* this, struct java_lang_String* par1, float par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkLabelPeer
  * Method:    setText
  * Signature: (Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkLabelPeer* this , struct java_lang_String* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkLabelPeer* this, struct java_lang_String* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkLabelPeer
  * Method:    nativeSetAlignment
  * Signature: (F)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_nativeSetAlignment (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkLabelPeer* this , float par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_nativeSetAlignment(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkLabelPeer* this, float par1);
+
+#endif
+
index 9fe5fd9aa83c248f039d634f9e79dba854f19ed8..d07f2eb54dd90bba20a613ce4c0910f883c34e02 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKLISTPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKLISTPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkListPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkListPeer {
@@ -10,69 +13,93 @@ typedef struct gnu_java_awt_peer_gtk_GtkListPeer {
    struct java_awt_Insets* insets;
 } gnu_java_awt_peer_gtk_GtkListPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    create
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    connectHooks
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_connectHooks (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_connectHooks(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    getSize
  * Signature: (I[I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this , s4 par1, java_intarray* par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this, s4 par1, java_intarray* par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    append
  * Signature: ([Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_append (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this , java_objectarray* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_append(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this, java_objectarray* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    add
  * Signature: (Ljava/lang/String;I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_add (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this , struct java_lang_String* par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_add(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this, struct java_lang_String* par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    delItems
  * Signature: (II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_delItems (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this , s4 par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_delItems(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this, s4 par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    deselect
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_deselect (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_deselect(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    getSelectedIndexes
  * Signature: ()[I
  */
-JNIEXPORT java_intarray* JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_getSelectedIndexes (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this );
+JNIEXPORT java_intarray* JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_getSelectedIndexes(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    makeVisible
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_makeVisible (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_makeVisible(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    select
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_select (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_select(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkListPeer
  * Method:    setMultipleMode
  * Signature: (Z)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_setMultipleMode (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkListPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkListPeer_setMultipleMode(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkListPeer* this, s4 par1);
+
+#endif
+
index adcd0e475bbc21277c42c505e7637b6c62a49f2e..12f92a0b73213ecf112d83d5807ad9da3e246de7 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKMAINTHREAD_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKMAINTHREAD_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkMainThread */
 
 typedef struct gnu_java_awt_peer_gtk_GtkMainThread {
@@ -8,15 +11,21 @@ typedef struct gnu_java_awt_peer_gtk_GtkMainThread {
    struct java_lang_Object* awtWidget;
 } gnu_java_awt_peer_gtk_GtkMainThread;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMainThread
  * Method:    gtkInit
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit (JNIEnv *env , jclass clazz );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit(JNIEnv *env, jclass clazz);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMainThread
  * Method:    gtkMain
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkMain (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkMainThread* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkMain(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkMainThread* this);
+
+#endif
+
index 00347f230595743c521388555cf0fd41a709b514..ccce358cafdaf6dc094e954ee9c8f33c9e992ead 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKMENUBARPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKMENUBARPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkMenuBarPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkMenuBarPeer {
@@ -8,21 +11,29 @@ typedef struct gnu_java_awt_peer_gtk_GtkMenuBarPeer {
    struct java_lang_Object* awtWidget;
 } gnu_java_awt_peer_gtk_GtkMenuBarPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMenuBarPeer
  * Method:    create
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkMenuBarPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkMenuBarPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMenuBarPeer
  * Method:    addMenu
  * Signature: (Ljava/awt/peer/MenuPeer;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_addMenu (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkMenuBarPeer* this , struct java_awt_peer_MenuPeer* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_addMenu(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkMenuBarPeer* this, struct java_awt_peer_MenuPeer* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMenuBarPeer
  * Method:    delMenu
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_delMenu (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkMenuBarPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_delMenu(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkMenuBarPeer* this, s4 par1);
+
+#endif
+
index f3d71f737f9ed4c19b525bbd578c5132be34ef49..a9c906e141388ee17edf12c3c69a7b4e6be5e7aa 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKMENUITEMPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKMENUITEMPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkMenuItemPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkMenuItemPeer {
@@ -8,15 +11,21 @@ typedef struct gnu_java_awt_peer_gtk_GtkMenuItemPeer {
    struct java_lang_Object* awtWidget;
 } gnu_java_awt_peer_gtk_GtkMenuItemPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMenuItemPeer
  * Method:    create
  * Signature: (Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkMenuItemPeer* this , struct java_lang_String* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkMenuItemPeer* this, struct java_lang_String* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMenuItemPeer
  * Method:    setLabel
  * Signature: (Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkMenuItemPeer* this , struct java_lang_String* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkMenuItemPeer* this, struct java_lang_String* par1);
+
+#endif
+
index 2d19dbbf4c43f77c38a26a22e9cf506f21deca0c..c006a3ca98200aef0b1feb88b226643a8a978bc0 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKMENUPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKMENUPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkMenuPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkMenuPeer {
@@ -8,27 +11,37 @@ typedef struct gnu_java_awt_peer_gtk_GtkMenuPeer {
    struct java_lang_Object* awtWidget;
 } gnu_java_awt_peer_gtk_GtkMenuPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMenuPeer
  * Method:    create
  * Signature: (Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkMenuPeer* this , struct java_lang_String* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkMenuPeer* this, struct java_lang_String* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMenuPeer
  * Method:    addItem
  * Signature: (Ljava/awt/peer/MenuItemPeer;IZ)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addItem (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkMenuPeer* this , struct java_awt_peer_MenuItemPeer* par1, s4 par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addItem(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkMenuPeer* this, struct java_awt_peer_MenuItemPeer* par1, s4 par2, s4 par3);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMenuPeer
  * Method:    setupAccelGroup
  * Signature: (Lgnu/java/awt/peer/gtk/GtkGenericPeer;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_setupAccelGroup (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkMenuPeer* this , struct gnu_java_awt_peer_gtk_GtkGenericPeer* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_setupAccelGroup(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkMenuPeer* this, struct gnu_java_awt_peer_gtk_GtkGenericPeer* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkMenuPeer
  * Method:    delItem
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkMenuPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkMenuPeer* this, s4 par1);
+
+#endif
+
index 141a721a6e0056956afc89ff1ca939e74cabcf5a..f0141aae8b92989e76cc982ee4de344aecbaebf4 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKPANELPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKPANELPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkPanelPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkPanelPeer {
@@ -11,15 +14,21 @@ typedef struct gnu_java_awt_peer_gtk_GtkPanelPeer {
    struct java_awt_Container* c;
 } gnu_java_awt_peer_gtk_GtkPanelPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkPanelPeer
  * Method:    create
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkPanelPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkPanelPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkPanelPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkPanelPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkPanelPeer
  * Method:    connectHooks
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkPanelPeer_connectHooks (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkPanelPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkPanelPeer_connectHooks(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkPanelPeer* this);
+
+#endif
+
index 7879f8386951afb3691b24bd38226207f353941a..194d86bbde4893a471d664c690b5dda7212dda75 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKPOPUPMENUPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKPOPUPMENUPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkPopupMenuPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkPopupMenuPeer {
@@ -8,15 +11,21 @@ typedef struct gnu_java_awt_peer_gtk_GtkPopupMenuPeer {
    struct java_lang_Object* awtWidget;
 } gnu_java_awt_peer_gtk_GtkPopupMenuPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkPopupMenuPeer
  * Method:    setupAccelGroup
  * Signature: (Lgnu/java/awt/peer/gtk/GtkGenericPeer;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_setupAccelGroup (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkPopupMenuPeer* this , struct gnu_java_awt_peer_gtk_GtkGenericPeer* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_setupAccelGroup(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkPopupMenuPeer* this, struct gnu_java_awt_peer_gtk_GtkGenericPeer* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkPopupMenuPeer
  * Method:    show
  * Signature: (IIJ)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_show (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkPopupMenuPeer* this , s4 par1, s4 par2, s8 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_show(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkPopupMenuPeer* this, s4 par1, s4 par2, s8 par3);
+
+#endif
+
index 42de46e0f7f2e51ff8f4e41fef8ac4ccc715c5e1..044327ab74b5a7abacb37c45fae26967bda4c8eb 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKSCROLLPANEPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKSCROLLPANEPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkScrollPanePeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkScrollPanePeer {
@@ -11,69 +14,93 @@ typedef struct gnu_java_awt_peer_gtk_GtkScrollPanePeer {
    struct java_awt_Container* c;
 } gnu_java_awt_peer_gtk_GtkScrollPanePeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    create
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    gtkScrolledWindowNew
  * Signature: (Ljava/awt/peer/ComponentPeer;III[I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowNew (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this , struct java_awt_peer_ComponentPeer* par1, s4 par2, s4 par3, s4 par4, java_intarray* par5);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowNew(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this, struct java_awt_peer_ComponentPeer* par1, s4 par2, s4 par3, s4 par4, java_intarray* par5);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    gtkScrolledWindowSetScrollPosition
  * Signature: (II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetScrollPosition (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this , s4 par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetScrollPosition(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this, s4 par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    gtkScrolledWindowSetHScrollIncrement
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetHScrollIncrement (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetHScrollIncrement(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    gtkScrolledWindowSetVScrollIncrement
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetVScrollIncrement (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetVScrollIncrement(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    gtkScrolledWindowSetSize
  * Signature: (II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetSize (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this , s4 par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetSize(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this, s4 par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    setPolicy
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setPolicy (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setPolicy(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    childResized
  * Signature: (II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_childResized (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this , s4 par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_childResized(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this, s4 par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    getHScrollbarHeight
  * Signature: ()I
  */
-JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getHScrollbarHeight (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this );
+JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getHScrollbarHeight(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    getVScrollbarWidth
  * Signature: ()I
  */
-JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getVScrollbarWidth (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this );
+JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getVScrollbarWidth(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollPanePeer
  * Method:    setScrollPosition
  * Signature: (II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setScrollPosition (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this , s4 par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setScrollPosition(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollPanePeer* this, s4 par1, s4 par2);
+
+#endif
+
index 4c5749a33c8d4f03d88ce5e7df090570bb362e3a..d4c816b93b9bfacb8395456a559c57a8b5481400 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKSCROLLBARPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKSCROLLBARPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkScrollbarPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkScrollbarPeer {
@@ -10,33 +13,45 @@ typedef struct gnu_java_awt_peer_gtk_GtkScrollbarPeer {
    struct java_awt_Insets* insets;
 } gnu_java_awt_peer_gtk_GtkScrollbarPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollbarPeer
  * Method:    create
  * Signature: (IIIIIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollbarPeer* this , s4 par1, s4 par2, s4 par3, s4 par4, s4 par5, s4 par6, s4 par7);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollbarPeer* this, s4 par1, s4 par2, s4 par3, s4 par4, s4 par5, s4 par6, s4 par7);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollbarPeer
  * Method:    connectHooks
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectHooks (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollbarPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectHooks(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollbarPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollbarPeer
  * Method:    setLineIncrement
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setLineIncrement (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollbarPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setLineIncrement(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollbarPeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollbarPeer
  * Method:    setPageIncrement
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setPageIncrement (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollbarPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setPageIncrement(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollbarPeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkScrollbarPeer
  * Method:    setValues
  * Signature: (IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setValues (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkScrollbarPeer* this , s4 par1, s4 par2, s4 par3, s4 par4);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setValues(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkScrollbarPeer* this, s4 par1, s4 par2, s4 par3, s4 par4);
+
+#endif
+
index 7affdabc8c78a0b24de9477d99288e308c862c92..0205ef920813e20c3e72b22738fe9f1b12094b56 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKTEXTAREAPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKTEXTAREAPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkTextAreaPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkTextAreaPeer {
@@ -10,33 +13,45 @@ typedef struct gnu_java_awt_peer_gtk_GtkTextAreaPeer {
    struct java_awt_Insets* insets;
 } gnu_java_awt_peer_gtk_GtkTextAreaPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextAreaPeer
  * Method:    create
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextAreaPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextAreaPeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextAreaPeer
  * Method:    gtkSetFont
  * Signature: (Ljava/lang/String;II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkSetFont (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextAreaPeer* this , struct java_lang_String* par1, s4 par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkSetFont(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextAreaPeer* this, struct java_lang_String* par1, s4 par2, s4 par3);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextAreaPeer
  * Method:    gtkTextGetSize
  * Signature: ([I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkTextGetSize (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextAreaPeer* this , java_intarray* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkTextGetSize(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextAreaPeer* this, java_intarray* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextAreaPeer
  * Method:    insert
  * Signature: (Ljava/lang/String;I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_insert (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextAreaPeer* this , struct java_lang_String* par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_insert(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextAreaPeer* this, struct java_lang_String* par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextAreaPeer
  * Method:    replaceRange
  * Signature: (Ljava/lang/String;II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_replaceRange (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextAreaPeer* this , struct java_lang_String* par1, s4 par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_replaceRange(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextAreaPeer* this, struct java_lang_String* par1, s4 par2, s4 par3);
+
+#endif
+
index 72feed311b2a83f27a82a9b24523b9cc4241e054..1ed1b7d325c33aa00cb007f712a66d3ac789621d 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKTEXTCOMPONENTPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKTEXTCOMPONENTPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkTextComponentPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkTextComponentPeer {
@@ -10,57 +13,77 @@ typedef struct gnu_java_awt_peer_gtk_GtkTextComponentPeer {
    struct java_awt_Insets* insets;
 } gnu_java_awt_peer_gtk_GtkTextComponentPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextComponentPeer
  * Method:    connectHooks
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_connectHooks (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_connectHooks(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextComponentPeer
  * Method:    getCaretPosition
  * Signature: ()I
  */
-JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getCaretPosition (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this );
+JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getCaretPosition(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextComponentPeer
  * Method:    setCaretPosition
  * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setCaretPosition (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setCaretPosition(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextComponentPeer
  * Method:    getSelectionStart
  * Signature: ()I
  */
-JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionStart (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this );
+JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionStart(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextComponentPeer
  * Method:    getSelectionEnd
  * Signature: ()I
  */
-JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionEnd (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this );
+JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionEnd(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextComponentPeer
  * Method:    getText
  * Signature: ()Ljava/lang/String;
  */
-JNIEXPORT struct java_lang_String* JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getText (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this );
+JNIEXPORT struct java_lang_String* JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getText(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextComponentPeer
  * Method:    select
  * Signature: (II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_select (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this , s4 par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_select(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this, s4 par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextComponentPeer
  * Method:    setEditable
  * Signature: (Z)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setEditable (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setEditable(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this, s4 par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextComponentPeer
  * Method:    setText
  * Signature: (Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setText (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this , struct java_lang_String* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setText(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextComponentPeer* this, struct java_lang_String* par1);
+
+#endif
+
index 585d0298ba06806b00e1882acc3e38f6ebaec7c3..7f391cef226751d5b92b8d694759c99b68ae492c 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKTEXTFIELDPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKTEXTFIELDPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkTextFieldPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkTextFieldPeer {
@@ -10,27 +13,37 @@ typedef struct gnu_java_awt_peer_gtk_GtkTextFieldPeer {
    struct java_awt_Insets* insets;
 } gnu_java_awt_peer_gtk_GtkTextFieldPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextFieldPeer
  * Method:    create
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextFieldPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextFieldPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextFieldPeer
  * Method:    gtkEntryGetSize
  * Signature: ([I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetSize (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextFieldPeer* this , java_intarray* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetSize(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextFieldPeer* this, java_intarray* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextFieldPeer
  * Method:    gtkSetFont
  * Signature: (Ljava/lang/String;II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkSetFont (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextFieldPeer* this , struct java_lang_String* par1, s4 par2, s4 par3);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkSetFont(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextFieldPeer* this, struct java_lang_String* par1, s4 par2, s4 par3);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkTextFieldPeer
  * Method:    setEchoChar
  * Signature: (C)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEchoChar (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkTextFieldPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEchoChar(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkTextFieldPeer* this, s4 par1);
+
+#endif
+
index 071dc929a7a46672af0e8205003f0c4f12ad96b5..a9f9ea896be33154b37a846164474793c7973d5c 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKTOOLKIT_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKTOOLKIT_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkToolkit */
 
 typedef struct gnu_java_awt_peer_gtk_GtkToolkit {
@@ -10,27 +13,37 @@ typedef struct gnu_java_awt_peer_gtk_GtkToolkit {
    struct java_util_Hashtable* containers;
 } gnu_java_awt_peer_gtk_GtkToolkit;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkToolkit
  * Method:    beep
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_beep (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkToolkit* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_beep(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkToolkit* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkToolkit
  * Method:    getScreenSizeDimensions
  * Signature: ([I)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenSizeDimensions (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkToolkit* this , java_intarray* par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenSizeDimensions(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkToolkit* this, java_intarray* par1);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkToolkit
  * Method:    getScreenResolution
  * Signature: ()I
  */
-JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenResolution (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkToolkit* this );
+JNIEXPORT s4 JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenResolution(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkToolkit* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkToolkit
  * Method:    sync
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_sync (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkToolkit* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_sync(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkToolkit* this);
+
+#endif
+
index 0b4e81a8e97fdacf464dd24ae704ef8e9e66bcc4..7007180f8aefd7a5e4b66d5f4b6141635c30686c 100644 (file)
@@ -1,5 +1,8 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _GNU_JAVA_AWT_PEER_GTK_GTKWINDOWPEER_H
+#define _GNU_JAVA_AWT_PEER_GTK_GTKWINDOWPEER_H
+
 /* Structure information for class: gnu/java/awt/peer/gtk/GtkWindowPeer */
 
 typedef struct gnu_java_awt_peer_gtk_GtkWindowPeer {
@@ -13,51 +16,69 @@ typedef struct gnu_java_awt_peer_gtk_GtkWindowPeer {
    s4 oldState;
 } gnu_java_awt_peer_gtk_GtkWindowPeer;
 
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkWindowPeer
  * Method:    create
  * Signature: (IZIILgnu/java/awt/peer/gtk/GtkWindowPeer;)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkWindowPeer* this , s4 par1, s4 par2, s4 par3, s4 par4, struct gnu_java_awt_peer_gtk_GtkWindowPeer* par5);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkWindowPeer* this, s4 par1, s4 par2, s4 par3, s4 par4, struct gnu_java_awt_peer_gtk_GtkWindowPeer* par5);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkWindowPeer
  * Method:    connectHooks
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectHooks (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkWindowPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectHooks(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkWindowPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkWindowPeer
  * Method:    toBack
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toBack (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkWindowPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toBack(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkWindowPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkWindowPeer
  * Method:    toFront
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toFront (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkWindowPeer* this );
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toFront(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkWindowPeer* this);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkWindowPeer
  * Method:    nativeSetBounds
  * Signature: (IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBounds (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkWindowPeer* this , s4 par1, s4 par2, s4 par3, s4 par4);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBounds(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkWindowPeer* this, s4 par1, s4 par2, s4 par3, s4 par4);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkWindowPeer
  * Method:    setSize
  * Signature: (II)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setSize (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkWindowPeer* this , s4 par1, s4 par2);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setSize(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkWindowPeer* this, s4 par1, s4 par2);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkWindowPeer
  * Method:    setBoundsCallback
  * Signature: (Ljava/awt/Window;IIII)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setBoundsCallback (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkWindowPeer* this , struct java_awt_Window* par1, s4 par2, s4 par3, s4 par4, s4 par5);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setBoundsCallback(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkWindowPeer* this, struct java_awt_Window* par1, s4 par2, s4 par3, s4 par4, s4 par5);
+
+
 /*
  * Class:     gnu/java/awt/peer/gtk/GtkWindowPeer
  * Method:    nativeSetVisible
  * Signature: (Z)V
  */
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisible (JNIEnv *env ,  struct gnu_java_awt_peer_gtk_GtkWindowPeer* this , s4 par1);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisible(JNIEnv *env, struct gnu_java_awt_peer_gtk_GtkWindowPeer* this, s4 par1);
+
+#endif
+
index 68045b96f46d07bca42a309aac3726bd4dfd1e85..aad0525b541e8cde7e9c2d8ffe00e447cd0c9ea8 100644 (file)
@@ -1,8 +1,13 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _JAVA_AWT_PEER_COMPONENTPEER_H
+#define _JAVA_AWT_PEER_COMPONENTPEER_H
+
 /* Structure information for class: java/awt/peer/ComponentPeer */
 
 typedef struct java_awt_peer_ComponentPeer {
    java_objectheader header;
 } java_awt_peer_ComponentPeer;
 
+#endif
+
index 7012e4a851720d78c1aa81c6eeaff53c25dc6d94..f896d4b09d78f50fa9292ae0d95d0b76915301a7 100644 (file)
@@ -1,8 +1,13 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _JAVA_AWT_PEER_MENUITEMPEER_H
+#define _JAVA_AWT_PEER_MENUITEMPEER_H
+
 /* Structure information for class: java/awt/peer/MenuItemPeer */
 
 typedef struct java_awt_peer_MenuItemPeer {
    java_objectheader header;
 } java_awt_peer_MenuItemPeer;
 
+#endif
+
index c7824156238cb536e1ce4f2c55e681424c0e75b7..6a3496c9872e58303dc94b9eff94eeba87d0782d 100644 (file)
@@ -1,8 +1,13 @@
 /* This file is machine generated, don't edit it !*/
 
+#ifndef _JAVA_AWT_PEER_MENUPEER_H
+#define _JAVA_AWT_PEER_MENUPEER_H
+
 /* Structure information for class: java/awt/peer/MenuPeer */
 
 typedef struct java_awt_peer_MenuPeer {
    java_objectheader header;
 } java_awt_peer_MenuPeer;
 
+#endif
+
index e5cf06ed070f6d1a221d891189542ce67cb131e4..86ee733617c517134ff809b4a4c1b94ed8ed8053 100644 (file)
--- a/native.c
+++ b/native.c
@@ -31,7 +31,7 @@
    The .hh files created with the header file generator are all
    included here as are the C functions implementing these methods.
 
-   $Id: native.c 676 2003-11-24 20:50:23Z twisti $
+   $Id: native.c 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -86,6 +86,7 @@ classinfo *class_java_lang_CloneNotSupportedException;
 classinfo *class_java_lang_System;
 classinfo *class_java_lang_ClassLoader;
 classinfo *class_java_lang_ClassNotFoundException;
+classinfo *class_java_lang_LinkageError;
 classinfo *class_java_lang_InstantiationException;
 classinfo *class_java_lang_NoSuchMethodError;   
 classinfo *class_java_lang_NoSuchFieldError;
@@ -129,29 +130,36 @@ void use_class_as_object(classinfo *c)
         vftbl *newtbl;
         if (!c->classvftbl) {
                 c->classvftbl = true;
-                copy_vftbl(&newtbl, vt);
+
+/*                copy_vftbl(&newtbl, vt);
                 newtbl->class = c->header.vftbl->class;
                 newtbl->baseval = c->header.vftbl->baseval;
                 newtbl->diffval = c->header.vftbl->diffval;
-                c->header.vftbl = newtbl;
-        }
+                c->header.vftbl = newtbl;*/
+               
+               c->header.vftbl=class_java_lang_Class->vftbl;
         
-       if (!class_java_lang_VMClass) {
-               class_java_lang_VMClass =
-                                class_new ( utf_new_char("java/lang/VMClass"));
-                method_vmclass_init = 
-                               class_findmethod(class_java_lang_VMClass,utf_new_char("<init>"),
-                                       utf_new_char("(Lgnu/classpath/RawData;)V"));
-                if (method_vmclass_init==0) {
-                       class_showmethods(class_java_lang_VMClass);
-                        panic("Needed class initializer for VMClass could not be found");
-                }
-        }
-        {
-                java_objectheader *vmo = builtin_new (class_java_lang_VMClass);
-                asm_calljavamethod (method_vmclass_init, vmo, c, NULL, NULL);
-                c->vmClass=(java_lang_VMClass*)vmo;
+               if (!class_java_lang_VMClass) {
+                       class_java_lang_VMClass =
+                                       loader_load ( utf_new_char("java/lang/VMClass"));
+                       method_vmclass_init = 
+                                       class_findmethod(class_java_lang_VMClass,utf_new_char("<init>"),
+                                               utf_new_char("(Lgnu/classpath/RawData;)V"));
+                       if (method_vmclass_init==0) {
+                               class_showmethods(class_java_lang_VMClass);
+                               panic("Needed class initializer for VMClass could not be found");
+                       }
+               }
+               {     
+                       java_objectheader *vmo = builtin_new (class_java_lang_VMClass);
+
+                       if (!vmo) panic("Error while creating instance of java/lang/VMClass");
+                       asm_calljavamethod (method_vmclass_init, vmo, c, NULL, NULL);
+                       c->vmClass=(java_lang_VMClass*)vmo;
+                       /*log_text("VMCLASS has been attached");*/
+               }
         }
+       
 }
 
 
@@ -248,6 +256,8 @@ void native_loadclasses()
                class_new(utf_new_char("java/io/FileNotFoundException"));
        class_java_lang_ClassNotFoundException =
                class_new(utf_new_char("java/lang/ClassNotFoundException"));
+       class_java_lang_LinkageError =
+               class_new(utf_new_char("java/lang/LinkageError"));
        class_java_lang_InstantiationException =
                class_new(utf_new_char("java/lang/InstantiationException"));
        class_java_lang_NoSuchMethodError =
@@ -302,14 +312,6 @@ void native_loadclasses()
        class_java_lang_Void =
                class_new(utf_new_char("java/lang/Void"));
 
-       /* load to avoid dynamic classloading */
-/*JoWenn       class_new(utf_new_char("sun/net/www/protocol/file/Handler"));
-       class_new(utf_new_char("sun/net/www/protocol/jar/Handler"));    
-       class_new(utf_new_char("sun/io/CharToByteISO8859_1"));*/
-       
-       /* start classloader */
-/*JoWenn       loader_load(utf_new_char("sun/io/ByteToCharISO8859_1")); */
-
        classesLoaded=1;
        log_text("native_loadclasses finished");
 }
@@ -431,6 +433,17 @@ void throw_classnotfoundexception2(utf* classname)
                                                                                          javastring_new(classname));
 }
 
+void throw_linkageerror2(utf* classname)
+{
+       if (!class_java_lang_LinkageError) {
+               panic("java.lang.LinkageError not found. Maybe wrong classpath?");
+       }
+
+       /* throws a ClassNotFoundException with message */
+       exceptionptr = native_new_and_init_string(class_java_lang_LinkageError,
+                                                                                         javastring_new(classname));
+}
+
 
 /*********************** Function: native_findfunction *************************
 
index 2dc6b70085fdf3cf96d4ab9e8071ac085383fd31..fe101f36a5d5b37f0f34f06d330cd942f82832c6 100644 (file)
--- a/native.h
+++ b/native.h
@@ -26,7 +26,7 @@
 
    Authors: Reinhard Grafl
 
-   $Id: native.h 676 2003-11-24 20:50:23Z twisti $
+   $Id: native.h 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -124,8 +124,13 @@ void stringtable_update();
 /* throw classnotfoundexcetion */
 void throw_classnotfoundexception();
 
+/* throw classnotfoundexcetion with description*/
 void throw_classnotfoundexception2(utf* classname);
 
+/* throw linkageerror with description*/
+void throw_linkageerror2(utf* classname);
+
+
 /* make utf symbol from javastring */
 utf *javastring_toutf(struct java_lang_String *string, bool isclassname);
 
index 3c52ec1823d4ae154499f7af0909219be3e66956..1e031ce03622b25dd0f5343e9e4c02b614506fea 100644 (file)
@@ -29,7 +29,7 @@
    Changes: Mark Probst
             Philipp Tomsich
 
-   $Id: headers.c 676 2003-11-24 20:50:23Z twisti $
+   $Id: headers.c 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -59,6 +59,7 @@ void throw_classnotfoundexception()
        panic("class not found----------"); 
 }
 /*  */
+
 void throw_classnotfoundexception2(utf* classname) 
 { 
        sprintf (logtext, "Loading class: ");
@@ -66,6 +67,11 @@ void throw_classnotfoundexception2(utf* classname)
        panic("******class not found"); 
 }
 
+/* this is here to avoid link errors. We are not interested in linkagerrors in cacaoh right now*/
+void throw_linkageerror2(utf* classname) 
+{ 
+}
+
 java_objectheader *literalstring_new (utf *u)
 { return NULL; }  
 
index 63f377e8871e0476f8f4328769b09c0e370a90f0..ab99dfe3d3df70a6c301d290104f46cf0acee518 100644 (file)
@@ -1,63 +1,63 @@
-/* jni.c - implementation of JNI functions
+/********************************** jni.c *****************************************
 
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-   R. Grafl, A. Krall, C. Kruegel, C. Oates, R. Obermaisser,
-   M. Probst, S. Ring, E. Steiner, C. Thalinger, D. Thuernbeck,
-   P. Tomsich, J. Wenninger
-
-   This file is part of CACAO.
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2, or (at
-   your option) any later version.
-
-   This program is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.
-
-   Contact: cacao@complang.tuwien.ac.at
-
-   Authors: ?
-
-   $Id: jni.c 676 2003-11-24 20:50:23Z twisti $
-
-*/
+       implementation of the Java Native Interface functions                             
+       which are used in the JNI function table                                         
 
+***********************************************************************************/
 
 #include "jni.h"
-#include "types.h"
-#include "jit.h"
-#include "builtin.h"
+#include "global.h"
 #include "loader.h"
-#include "native.h"
 #include "tables.h"
-#include "asmpart.h"
-#include "toolbox/memory.h"
+#include "native.h"
+#include "builtin.h"
+#include "threads/thread.h"
+#include "nat/java_lang_Byte.h"
+#include "nat/java_lang_Character.h"
+#include "nat/java_lang_Short.h"
+#include "nat/java_lang_Integer.h"
+#include "nat/java_lang_Boolean.h"
+#include "nat/java_lang_Long.h"
+#include "nat/java_lang_Float.h"
+#include "nat/java_lang_Double.h"
 #include "nat/java_lang_Throwable.h"
+#include "jit/jit.h"
+#include "asmpart.h"   
+#define JNI_VERSION       0x00010002
+
 
+static utf* utf_char=0;
+static utf* utf_bool=0;
+static utf* utf_byte=0;
+static utf* utf_short=0;
+static utf* utf_int=0;
+static utf* utf_long=0;
+static utf* utf_float=0;
+static utf* utf_double=0;
 
 /********************* accessing instance-fields **********************************/
 
+#define setField(obj,typ,var,val) *((typ*) ((long int) obj + (long int) var->offset))=val;  
+#define getField(obj,typ,var)     *((typ*) ((long int) obj + (long int) var->offset))
+#define setfield_critical(clazz,obj,name,sig,jdatatype,val) setField(obj,jdatatype,getFieldID_critical(env,clazz,name,sig),val); 
+
+
+
 u4 get_parametercount(methodinfo *m)
 {
     utf  *descr    =  m->descriptor;    /* method-descriptor */
     char *utf_ptr  =  descr->text;      /* current position in utf-text */
     char *desc_end =  utf_end(descr);   /* points behind utf string     */
+    java_objectarray* result;
     int parametercount = 0;
+   int i;
 
     /* skip '(' */
     utf_nextu2(&utf_ptr);
 
     /* determine number of parameters */
-    while (*utf_ptr != ')') {
-        get_type(&utf_ptr, desc_end, true);
+    while ( *utf_ptr != ')' ) {
+        get_type(&utf_ptr,desc_end,true);
         parametercount++;
     }
 
@@ -66,17 +66,130 @@ u4 get_parametercount(methodinfo *m)
 
 
 
+void fill_callblock(void *obj,utf *descr,jni_callblock blk[], va_list data, char ret) {
+    char *utf__ptr  =  descr->text;      /* current position in utf-text */
+    char **utf_ptr  =  &utf__ptr;
+    char *desc_end =  utf_end(descr);   /* points behind utf string     */
+
+    int cnt;
+
+    jdouble d;
+    jlong l;
+    u4 dummy;
+    char c;
+       /*
+    log_text("fill_callblock");
+    utf_display(descr);
+    log_text("====");
+       */
+    /* skip '(' */
+    utf_nextu2(utf_ptr);
+
+    /* determine number of parameters */
+   if (obj) {
+          blk[0].itemtype=TYPE_ADR;
+          blk[0].item=(u8)(u4)obj;
+          cnt=1;
+   } else cnt=0;
+   while ( **utf_ptr != ')' ) {
+       if (*utf_ptr>=desc_end)
+               panic("illegal method descriptor");
+
+       switch (utf_nextu2(utf_ptr)) {
+       /* primitive types */
+             case 'B' :
+             case 'C' :
+             case 'S' : 
+             case 'Z' :
+                        blk[cnt].itemtype=TYPE_INT;
+                        blk[cnt].item=(u8) va_arg(data,int);
+                        break;
+             case 'I' :
+                        blk[cnt].itemtype=TYPE_INT;
+                        dummy=va_arg(data,u4);
+                        /*printf("fill_callblock: pos:%d, value:%d\n",cnt,dummy);*/
+                        blk[cnt].item=(u8)dummy;
+
+                        break;
+
+             case 'J' : 
+                        blk[cnt].itemtype=TYPE_LNG;
+                        blk[cnt].item=(u8)va_arg(data,jlong);
+                                break;
+             case 'F' : 
+                        blk[cnt].itemtype=TYPE_FLT;
+                        *((jfloat*)(&blk[cnt].item))=((jfloat)va_arg(data,jdouble));
+                        break;
+
+             case 'D' : 
+                        blk[cnt].itemtype=TYPE_DBL;
+                        *((jdouble*)(&blk[cnt].item))=(jdouble)va_arg(data,jdouble);
+                        break;
+             case 'V' : panic ("V not allowed as function parameter");
+                        break;
+             case 'L' : {
+                           while (utf_nextu2(utf_ptr)!=';')
+
+                           blk[cnt].itemtype=TYPE_ADR;
+                           blk[cnt].item=(u8)(u4)va_arg(data,void*);
+                           break;                      
+                        }
+             case '[' : {
+                         /* XXX */
+                           /* arrayclass */
+                                   char *start = *utf_ptr;
+                           char ch;
+                           while ((ch = utf_nextu2(utf_ptr))=='[')
+                           if (ch == 'L') {
+                               while (utf_nextu2(utf_ptr)!=';') {}
+                                   }
+       
+                            ch=utf_nextu2(utf_ptr);
+                           blk[cnt].itemtype=TYPE_ADR;
+                           blk[cnt].item=(u8)(u4)va_arg(data,void*);
+                           break;                      
+                        }
+       }
+       cnt++;
+   }
+
+   /*the standard doesn't say anything about return value checking, but it appears to be usefull*/
+   c=utf_nextu2(utf_ptr);
+   c=utf_nextu2(utf_ptr);
+   /*printf("%c  %c\n",ret,c);*/
+   if (ret=='O') {
+       if (!((c=='L') || (c=='['))) log_text("\n====\nWarning call*Method called for function with wrong return type\n====");
+   } else if (ret != c) log_text("\n====\nWarning call*Method called for function with wrong return type\n====");
+
+}
+
 /* XXX it could be considered if we should do typechecking here in the future */
-void fill_callblock(void *obj, utf *descr, jni_callblock blk[], va_list data, char ret)
+char fill_callblock_objA(void *obj, utf *descr, jni_callblock blk[], java_objectarray* params)
 {
     char *utf__ptr  =  descr->text;      /* current position in utf-text */
     char **utf_ptr  =  &utf__ptr;
     char *desc_end =  utf_end(descr);   /* points behind utf string     */
 
+    jobject param;
     int cnt;
+    int cnts;
 
     u4 dummy;
     char c;
+    char *cp;
+    intsDisable();
+       if (utf_char==0) {
+               utf_char=utf_new_char("java/lang/Character");
+               utf_bool=utf_new_char("java/lang/Boolean");
+               utf_byte=utf_new_char("java/lang/Byte");
+               utf_short=utf_new_char("java/lang/Short");
+               utf_int=utf_new_char("java/lang/Integer");
+               utf_long=utf_new_char("java/lang/Long");
+               utf_float=utf_new_char("java/lang/Float");
+               utf_double=utf_new_char("java/lang/Double");
+       }
+    intsRestore();
+
        /*
          log_text("fill_callblock");
          utf_display(descr);
@@ -95,85 +208,203 @@ void fill_callblock(void *obj, utf *descr, jni_callblock blk[], va_list data, ch
                cnt = 0;
        }
 
+       cnts=0;
        while (**utf_ptr != ')') {
                if (*utf_ptr >= desc_end)
                panic("illegal method descriptor");
 
                /* primitive types */
                switch (utf_nextu2(utf_ptr)) {
-               case 'B':
+               case 'B':       
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_byte) {
+                                       blk[cnt].itemtype=TYPE_INT;
+                                       blk[cnt].item = (u8) ((struct java_lang_Byte * )param)->value;
+                               } else  {
+                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                       return 0;
+                               }
+                               break;
                case 'C':
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_char) {
+                                       blk[cnt].itemtype=TYPE_INT;
+                                       blk[cnt].item = (u8) ((struct java_lang_Character * )param)->value;
+                               } else  {
+                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                       return 0;
+                               }
+                               break;
+
                case 'S': 
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_short) {
+                                       blk[cnt].itemtype=TYPE_INT;
+                                       blk[cnt].item = (u8) ((struct java_lang_Short* )param)->value;
+                               } else  {
+                                       if (param->vftbl->class->name==utf_byte) {
+                                               blk[cnt].itemtype=TYPE_INT;
+                                               blk[cnt].item = (u8) ((struct java_lang_Byte * )param)->value;
+                                       } else {
+                                               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                               return 0;
+                                       }
+                               }
+                               break;
+
                case 'Z':
-                       blk[cnt].itemtype = TYPE_INT;
-                       blk[cnt].item = (u8) va_arg(data, int);
-                       break;
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_bool) {
+                                       blk[cnt].itemtype=TYPE_INT;
+                                       blk[cnt].item = (u8) ((struct java_lang_Boolean * )param)->value;
+                               } else  {
+                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                       return 0;
+                               }
+                               break;
 
                case 'I':
-                       blk[cnt].itemtype = TYPE_INT;
-                       dummy = va_arg(data, u4);
-                       /*printf("fill_callblock: pos:%d, value:%d\n",cnt,dummy);*/
-                       blk[cnt].item = (u8) dummy;
-                       break;
-
+                               log_text("fill_callblock_objA: param 'I'");
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_int) {
+                                       blk[cnt].itemtype=TYPE_INT;
+                                       blk[cnt].item = (u8) ((struct java_lang_Integer * )param)->value;
+                                       /*printf("INT VALUE :%d\n",((struct java_lang_Integer * )param)->value);*/
+                               } else {
+                                       if (param->vftbl->class->name==utf_short) {
+                                               blk[cnt].itemtype=TYPE_INT;
+                                               blk[cnt].item = (u8) ((struct java_lang_Short* )param)->value;
+                                       } else  {
+                                               if (param->vftbl->class->name==utf_byte) {
+                                                       blk[cnt].itemtype=TYPE_INT;
+                                                       blk[cnt].item = (u8) ((struct java_lang_Byte * )param)->value;
+
+                                               } else  {
+                                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                                       return 0;
+                                               }
+                                       }
+                               }
+                               break;
                case 'J':
-                       blk[cnt].itemtype = TYPE_LNG;
-                       blk[cnt].item = (u8) va_arg(data, jlong);
-                       break;
-
-               case 'F':
-                       blk[cnt].itemtype = TYPE_FLT;
-                       *((jfloat*) (&blk[cnt].item)) = ((jfloat) va_arg(data, jdouble));
-                       break;
-
-               case 'D':
-                       blk[cnt].itemtype = TYPE_DBL;
-                       *((jdouble*) (&blk[cnt].item)) = (jdouble) va_arg(data, jdouble);
-                       break;
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_long) {
+                                       blk[cnt].itemtype=TYPE_LNG;
+                                       blk[cnt].item = (u8) ((struct java_lang_Long * )param)->value;
+                               } else  {
+                                       if (param->vftbl->class->name==utf_int) {
+                                               blk[cnt].itemtype=TYPE_LNG;
+                                               blk[cnt].item = (u8) ((struct java_lang_Integer * )param)->value;
+                                       } else {
+                                               if (param->vftbl->class->name==utf_short) {
+                                                       blk[cnt].itemtype=TYPE_LNG;
+                                                       blk[cnt].item = (u8) ((struct java_lang_Short* )param)->value;
+                                               } else  {
+                                                       if (param->vftbl->class->name==utf_byte) {
+                                                               blk[cnt].itemtype=TYPE_LNG;
+                                                               blk[cnt].item = (u8) ((struct java_lang_Byte * )param)->value;
+                                                       } else  {
+                                                               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                                               return 0;
+                                                       }
+                                               }
+                                       }
 
+                               }
+                               break;
+
+               case 'F' : 
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_float) {
+                                       blk[cnt].itemtype=TYPE_FLT;
+                                       *((jfloat*)(&blk[cnt].item))=(jfloat) ((struct java_lang_Float*)param)->value;
+                               } else  {
+                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                       return 0;
+                               }
+                               break;
+               case 'D' : 
+                               param=params->data[cnts];
+                               if (param->vftbl->class->name==utf_double) {
+                                       blk[cnt].itemtype=TYPE_DBL;
+                                       *((jdouble*)(&blk[cnt].item))=(jdouble) ((struct java_lang_Float*)param)->value;
+                               } else  {
+                                       if (param->vftbl->class->name==utf_float) {
+                                               blk[cnt].itemtype=TYPE_DBL;
+                                               *((jdouble*)(&blk[cnt].item))=(jdouble) ((struct java_lang_Float*)param)->value;
+                                       } else  {
+                                               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                               return 0;
+                                       }
+                               }
+                               break;
                case 'V':
                        panic("V not allowed as function parameter");
                        break;
 
-               case 'L':
-                       while (utf_nextu2(utf_ptr) != ';')
-                           blk[cnt].itemtype = TYPE_ADR;
-
-                       blk[cnt].item = (u8)(u4) va_arg(data, void*);
-                       break;                  
-
-               case '[' : {
-                       /* XXX need arrayclass change? no.*/
-                       /* arrayclass */
-                       char ch;
-                       while ((ch = utf_nextu2(utf_ptr)) == '[')
-                               if (ch == 'L') {
-                                       while (utf_nextu2(utf_ptr) != ';') {}
+               case 'L': {
+                               char *start=(*utf_ptr)-1;
+                               char *end;
+
+                               while (utf_nextu2(utf_ptr) != ';')
+                               end=(*utf_ptr)+1;
+                               if (!builtin_instanceof(params->data[cnts],class_from_descriptor(start,end,0,CLASSLOAD_LOAD))) {
+                                       if (params->data[cnts]!=0) {
+                                               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                               return 0;
+                                       }                       
                                }
-                       
-                       ch = utf_nextu2(utf_ptr);
-                       blk[cnt].itemtype = TYPE_ADR;
-                       blk[cnt].item = (u8)(u4) va_arg(data, void*);
-                       break;
-               }
+                               blk[cnt].itemtype = TYPE_ADR;
+                               blk[cnt].item= (u8)(u4) (params->data[cnts]);
+                               break;                  
+
+                         }
+               case '[' :
+                       {
+                               char *start=(*utf_ptr)-1;
+                               char *end;
+
+                               char ch;
+                               while ((ch = utf_nextu2(utf_ptr)) == '[')
+                                       if (ch == 'L') {
+                                               while (utf_nextu2(utf_ptr) != ';') {}
+                                       }
+                               end=(*utf_ptr)-1;
+                               ch = utf_nextu2(utf_ptr);
+                               if (!builtin_arrayinstanceof(params->data[cnts],class_from_descriptor(start,end,0,CLASSLOAD_LOAD))) {
+                                       exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+                                       return 0;
+                                       
+                               }
+       
+                               blk[cnt].itemtype = TYPE_ADR;
+                               blk[cnt].item = (u8)(u4) (params->data[cnts]);
+                               break;
+                       }
                }
                cnt++;
+               cnts++;
        }
 
-       /*the standard doesn't say anything about return value checking, but it appears to be usefull*/
        c = utf_nextu2(utf_ptr);
        c = utf_nextu2(utf_ptr);
-       /*printf("%c  %c\n",ret,c);*/
-       if (ret == 'O') {
-               if (!((c == 'L') || (c == '[')))
-                       log_text("\n====\nWarning call*Method called for function with wrong return type\n====");
-
-       } else if (ret != c)
-               log_text("\n====\nWarning call*Method called for function with wrong return type\n====");
+       return c; /*return type needed usage of the right lowlevel methods*/
 }
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+
 jmethodID get_virtual(jobject obj,jmethodID methodID) {
        if (obj->vftbl->class==methodID->class) return methodID;
        return class_resolvemethod (obj->vftbl->class, methodID->name, methodID->descriptor);
@@ -184,6 +415,8 @@ jmethodID get_nonvirtual(jclass clazz,jmethodID methodID) {
        return class_resolvemethod (clazz, methodID->name, methodID->descriptor);
 }
 
+
+
 jobject callObjectMethod (jobject obj, jmethodID methodID, va_list args)
 {      
        int argcount;
@@ -1984,6 +2217,7 @@ jstring NewString (JNIEnv *env, const jchar *buf, jsize len)
 
 
 static char emptyString[]="";
+static jchar emptyStringJ[]={0,0};
 
 /******************* returns the length of a Java string ***************************/
 
@@ -2030,14 +2264,14 @@ const jchar *GetStringChars (JNIEnv *env, jstring str, jboolean *isCopy)
                return jc;
        }
        if (isCopy) *isCopy=JNI_TRUE;
-       return emptyString;
+       return emptyStringJ;
 }
 
 /**************** native code no longer needs access to chars **********************/
 
 void ReleaseStringChars (JNIEnv *env, jstring str, const jchar *chars)
 {
-       if (chars==emptyString) return;
+       if (chars==emptyStringJ) return;
        MFREE(((jchar*) chars),jchar,((java_lang_String*) str)->count+1);
 }
 
@@ -2095,6 +2329,10 @@ jsize GetArrayLength (JNIEnv *env, jarray array)
 
 jobjectArray NewObjectArray (JNIEnv *env, jsize len, jclass clazz, jobject init)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_objectarray *j = builtin_anewarray (len, clazz);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2131,6 +2369,10 @@ void SetObjectArrayElement (JNIEnv *env, jobjectArray array, jsize index, jobjec
 
 jbooleanArray NewBooleanArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_booleanarray *j = builtin_newarray_boolean(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2139,6 +2381,10 @@ jbooleanArray NewBooleanArray (JNIEnv *env, jsize len)
 
 jbyteArray NewByteArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_bytearray *j = builtin_newarray_byte(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2147,6 +2393,10 @@ jbyteArray NewByteArray (JNIEnv *env, jsize len)
 
 jcharArray NewCharArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_chararray *j = builtin_newarray_char(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2155,6 +2405,10 @@ jcharArray NewCharArray (JNIEnv *env, jsize len)
 
 jshortArray NewShortArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_shortarray *j = builtin_newarray_short(len);   
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2163,6 +2417,10 @@ jshortArray NewShortArray (JNIEnv *env, jsize len)
 
 jintArray NewIntArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_intarray *j = builtin_newarray_int(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2171,6 +2429,10 @@ jintArray NewIntArray (JNIEnv *env, jsize len)
 
 jlongArray NewLongArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_longarray *j = builtin_newarray_long(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2179,6 +2441,10 @@ jlongArray NewLongArray (JNIEnv *env, jsize len)
 
 jfloatArray NewFloatArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_floatarray *j = builtin_newarray_float(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2187,6 +2453,10 @@ jfloatArray NewFloatArray (JNIEnv *env, jsize len)
 
 jdoubleArray NewDoubleArray (JNIEnv *env, jsize len)
 {
+    if (len<0) {
+               exceptionptr=proto_java_lang_NegativeArraySizeException;
+               return NULL;
+    }
     java_doublearray *j = builtin_newarray_double(len);
     if (!j) exceptionptr = proto_java_lang_OutOfMemoryError;
     return j;
@@ -2867,6 +3137,150 @@ struct JNI_Table envTable = {
 JNIEnv env = &envTable;
 
 
+
+
+
+
+
+
+jobject *jni_method_invokeNativeHelper(JNIEnv *env,struct methodinfo *methodID,jobject obj, java_objectarray *params) {
+       int argcount;
+       jni_callblock *blk;
+       jobject ret;
+       char retT;
+       jobject retVal;
+       if (methodID==0) {
+               exceptionptr = native_new_and_init(class_java_lang_NoSuchMethodError); 
+               return 0;
+       }
+        argcount=get_parametercount(methodID);
+
+       if (obj && (! builtin_instanceof((java_objectheader*)obj,methodID->class))) {
+               exceptionptr = native_new_and_init(class_java_lang_NoSuchMethodError);
+               return 0;
+       }
+
+       if  (argcount>3) {
+               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+               log_text("Too many arguments. invokeNativeHelper does not support that");
+               return 0;
+       }
+
+       if ( ((!params) && (argcount!=0)) || 
+               (params && (params->header.size!=argcount))
+          ) {
+               exceptionptr = native_new_and_init(loader_load(utf_new_char("java/lang/IllegalArgumentException")));
+               return 0;
+       }
+
+       blk = MNEW(jni_callblock, 4 /*argcount+2*/);
+
+       retT=fill_callblock_objA(obj,methodID->descriptor,blk,params);
+
+       switch (retT) {
+               case 'V':       (void)asm_calljavafunction2(methodID,argcount+1,(argcount+1)*sizeof(jni_callblock),blk);
+                               retVal=native_new_and_init(loader_load(utf_new_char("java/lang/Void")));
+                               break;
+               case 'I':       {
+                                       s4 intVal;      
+                                       intVal=(s4)asm_calljavafunction2(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Integer")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(I)V")),intVal);
+                               }
+                               break;
+               case 'B':       {
+                                       s4 intVal;      
+                                       intVal=(s4)asm_calljavafunction2(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Byte")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(B)V")),intVal);
+                               }
+                               break;
+               case 'C':       {
+                                       s4 intVal;      
+                                       intVal=(s4)asm_calljavafunction2(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Character")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(C)V")),intVal);
+                               }
+                               break;
+               case 'S':       {
+                                       s4 intVal;      
+                                       intVal=(s4)asm_calljavafunction2(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Short")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(S)V")),intVal);
+                               }
+
+               case 'Z':       {
+                                       s4 intVal;      
+                                       intVal=(s4)asm_calljavafunction2(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Boolean")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(Z)V")),intVal);
+                               }
+                               break;
+               case 'J':       {
+                                       jlong intVal;   
+                                       intVal=asm_calljavafunction2long(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Long")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(J)V")),intVal);
+                               }
+                               break;
+               case 'F':       {
+                                       jdouble floatVal;       
+                                       floatVal=asm_calljavafunction2double(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Float")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(F)V")),floatVal);
+                               }
+                               break;
+               case 'D':       {
+                                       jdouble floatVal;       
+                                       floatVal=asm_calljavafunction2double(methodID,
+                                               argcount+1,(argcount+1)*sizeof(jni_callblock),blk);                                                                                             
+                                       retVal=builtin_new(loader_load(utf_new_char("java/lang/Double")));
+                                       CallVoidMethod(env,retVal,
+                                               class_resolvemethod(retVal->vftbl->class,
+                                               utf_new_char("<init>"),utf_new_char("(D)V")),floatVal);
+                               }
+                               break;
+
+               case 'L':       /* fall through */
+               case '[':       retVal=asm_calljavafunction2(methodID,argcount+1,(argcount+1)*sizeof(jni_callblock),blk);
+                               break;
+               default:        { 
+                                       /* if this happens the acception has already been set by fill_callblock_objA*/
+                                       MFREE(blk, jni_callblock, 4 /*argcount+2*/);
+                                       return (jobject*)0;
+                               }
+       }
+       MFREE(blk, jni_callblock, 4 /*argcount+2*/);
+
+       if (exceptionptr)
+               exceptionptr=native_new_and_init(loader_load("java/lang/reflect/InvocationTargetException"));
+       return retVal;  
+
+}
+
+
+
 /*
  * These are local overrides for various environment variables in Emacs.
  * Please do not remove this and leave it at the end of the file, where
index f97b52e2f9f3c6536e878e25630a76ac59952841..4c0459fbf595c176a5b8cbc3a3ba6d3e98e3fc0c 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: ?
 
-   $Id: jni.h 676 2003-11-24 20:50:23Z twisti $
+   $Id: jni.h 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -500,6 +500,7 @@ void SetDoubleField(JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
 #define getField(obj,typ,var)     *((typ*) ((long int) obj + (long int) var->offset))
 #define setfield_critical(clazz,obj,name,sig,jdatatype,val) setField(obj,jdatatype,getFieldID_critical(env,clazz,name,sig),val);
 
+jobject *jni_method_invokeNativeHelper(JNIEnv *env,struct methodinfo *mi,jobject obj, java_objectarray *params);
 #endif /* _JNI_H */
 
 
index e5cf06ed070f6d1a221d891189542ce67cb131e4..86ee733617c517134ff809b4a4c1b94ed8ed8053 100644 (file)
@@ -31,7 +31,7 @@
    The .hh files created with the header file generator are all
    included here as are the C functions implementing these methods.
 
-   $Id: native.c 676 2003-11-24 20:50:23Z twisti $
+   $Id: native.c 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -86,6 +86,7 @@ classinfo *class_java_lang_CloneNotSupportedException;
 classinfo *class_java_lang_System;
 classinfo *class_java_lang_ClassLoader;
 classinfo *class_java_lang_ClassNotFoundException;
+classinfo *class_java_lang_LinkageError;
 classinfo *class_java_lang_InstantiationException;
 classinfo *class_java_lang_NoSuchMethodError;   
 classinfo *class_java_lang_NoSuchFieldError;
@@ -129,29 +130,36 @@ void use_class_as_object(classinfo *c)
         vftbl *newtbl;
         if (!c->classvftbl) {
                 c->classvftbl = true;
-                copy_vftbl(&newtbl, vt);
+
+/*                copy_vftbl(&newtbl, vt);
                 newtbl->class = c->header.vftbl->class;
                 newtbl->baseval = c->header.vftbl->baseval;
                 newtbl->diffval = c->header.vftbl->diffval;
-                c->header.vftbl = newtbl;
-        }
+                c->header.vftbl = newtbl;*/
+               
+               c->header.vftbl=class_java_lang_Class->vftbl;
         
-       if (!class_java_lang_VMClass) {
-               class_java_lang_VMClass =
-                                class_new ( utf_new_char("java/lang/VMClass"));
-                method_vmclass_init = 
-                               class_findmethod(class_java_lang_VMClass,utf_new_char("<init>"),
-                                       utf_new_char("(Lgnu/classpath/RawData;)V"));
-                if (method_vmclass_init==0) {
-                       class_showmethods(class_java_lang_VMClass);
-                        panic("Needed class initializer for VMClass could not be found");
-                }
-        }
-        {
-                java_objectheader *vmo = builtin_new (class_java_lang_VMClass);
-                asm_calljavamethod (method_vmclass_init, vmo, c, NULL, NULL);
-                c->vmClass=(java_lang_VMClass*)vmo;
+               if (!class_java_lang_VMClass) {
+                       class_java_lang_VMClass =
+                                       loader_load ( utf_new_char("java/lang/VMClass"));
+                       method_vmclass_init = 
+                                       class_findmethod(class_java_lang_VMClass,utf_new_char("<init>"),
+                                               utf_new_char("(Lgnu/classpath/RawData;)V"));
+                       if (method_vmclass_init==0) {
+                               class_showmethods(class_java_lang_VMClass);
+                               panic("Needed class initializer for VMClass could not be found");
+                       }
+               }
+               {     
+                       java_objectheader *vmo = builtin_new (class_java_lang_VMClass);
+
+                       if (!vmo) panic("Error while creating instance of java/lang/VMClass");
+                       asm_calljavamethod (method_vmclass_init, vmo, c, NULL, NULL);
+                       c->vmClass=(java_lang_VMClass*)vmo;
+                       /*log_text("VMCLASS has been attached");*/
+               }
         }
+       
 }
 
 
@@ -248,6 +256,8 @@ void native_loadclasses()
                class_new(utf_new_char("java/io/FileNotFoundException"));
        class_java_lang_ClassNotFoundException =
                class_new(utf_new_char("java/lang/ClassNotFoundException"));
+       class_java_lang_LinkageError =
+               class_new(utf_new_char("java/lang/LinkageError"));
        class_java_lang_InstantiationException =
                class_new(utf_new_char("java/lang/InstantiationException"));
        class_java_lang_NoSuchMethodError =
@@ -302,14 +312,6 @@ void native_loadclasses()
        class_java_lang_Void =
                class_new(utf_new_char("java/lang/Void"));
 
-       /* load to avoid dynamic classloading */
-/*JoWenn       class_new(utf_new_char("sun/net/www/protocol/file/Handler"));
-       class_new(utf_new_char("sun/net/www/protocol/jar/Handler"));    
-       class_new(utf_new_char("sun/io/CharToByteISO8859_1"));*/
-       
-       /* start classloader */
-/*JoWenn       loader_load(utf_new_char("sun/io/ByteToCharISO8859_1")); */
-
        classesLoaded=1;
        log_text("native_loadclasses finished");
 }
@@ -431,6 +433,17 @@ void throw_classnotfoundexception2(utf* classname)
                                                                                          javastring_new(classname));
 }
 
+void throw_linkageerror2(utf* classname)
+{
+       if (!class_java_lang_LinkageError) {
+               panic("java.lang.LinkageError not found. Maybe wrong classpath?");
+       }
+
+       /* throws a ClassNotFoundException with message */
+       exceptionptr = native_new_and_init_string(class_java_lang_LinkageError,
+                                                                                         javastring_new(classname));
+}
+
 
 /*********************** Function: native_findfunction *************************
 
index 2dc6b70085fdf3cf96d4ab9e8071ac085383fd31..fe101f36a5d5b37f0f34f06d330cd942f82832c6 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Reinhard Grafl
 
-   $Id: native.h 676 2003-11-24 20:50:23Z twisti $
+   $Id: native.h 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -124,8 +124,13 @@ void stringtable_update();
 /* throw classnotfoundexcetion */
 void throw_classnotfoundexception();
 
+/* throw classnotfoundexcetion with description*/
 void throw_classnotfoundexception2(utf* classname);
 
+/* throw linkageerror with description*/
+void throw_linkageerror2(utf* classname);
+
+
 /* make utf symbol from javastring */
 utf *javastring_toutf(struct java_lang_String *string, bool isclassname);
 
index 2c17c765515a6ef3ba21ec74d908eb365b135c3b..d8826e01a55e627d2684b4fd6b5e345429673a7c 100644 (file)
@@ -60,8 +60,9 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co
 
 
         m = &((classinfo*)clazz)->methods[this->slot];
-       if (!((m->name == utf_new_char("<init>")) && 
-                  (m->descriptor == create_methodsig(this->parameterTypes,"V"))))
+       if (!((m->name == utf_new_char("<init>"))))
+/* && 
+                  (m->descriptor == create_methodsig(this->parameterTypes,"V"))))*/
        {
                 if (verbose) {
                         sprintf(logtext, "Warning: class has no instance-initializer of specified type: ");
@@ -77,7 +78,7 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co
 
 /*     log_text("calling initializer");*/
         /* call initializer */
-
+#if 0
        switch (this->parameterTypes->header.size) {
                case 0: exceptionptr=asm_calljavamethod (m, o, NULL, NULL, NULL);
                        break;
@@ -91,6 +92,11 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co
                default:
                        log_text("Not supported number of arguments in Java_java_lang_reflect_Constructor");
        }
+#endif
+               /*utf_display(m->descriptor);
+               log_text("calling constructor");*/
+               (void) jni_method_invokeNativeHelper(env, m ,o, parameters); 
+
         return o;
 }
 
@@ -100,7 +106,7 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co
  * Signature: ()I
  */
 JNIEXPORT s4 JNICALL Java_java_lang_reflect_Constructor_getModifiers (JNIEnv *env ,  struct java_lang_reflect_Constructor* this ) {
-       log_text("Java_java_lang_reflect_Constructor_getModifiers called");
+/*     log_text("Java_java_lang_reflect_Constructor_getModifiers called");*/
         classinfo *c=(classinfo*)(this->clazz);
         if ((this->slot<0) || (this->slot>=c->methodscount))
                 panic("error illegal slot for method in class (getReturnType)");
index 631256e86fa0d1e13a12a9624622e71b22630623..d5371904a3aaa4756c7ec8d95a7a8f5a234e06eb 100644 (file)
@@ -2,6 +2,9 @@
 
 
 #include "jni.h"
+#include "loader.h"
+#include "global.h"
+#include "tables.h"
 #include "types.h"
 #include "builtin.h"
 #include "native.h"
@@ -72,10 +75,32 @@ JNIEXPORT java_objectarray* JNICALL Java_java_lang_reflect_Method_getExceptionTy
  * Method:    invokeNative
  * Signature: (Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Class;I)Ljava/lang/Object;
  */
-JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Method_invokeNative (JNIEnv *env ,  struct java_lang_reflect_Method* this , struct java_lang_Object* par1, java_objectarray* par2, struct java_lang_Class* par3, s4 par4)
+JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Method_invokeNative (JNIEnv *env ,  
+               struct java_lang_reflect_Method* this , struct java_lang_Object* obj, 
+               java_objectarray* params, struct java_lang_Class* declaringClass, s4 slot)
 {
-       log_text("Java_java_lang_reflect_Method_invokeNative called");
+
+    struct methodinfo *mi;
+    classinfo *c=(classinfo*)(declaringClass);
+    if ((slot<0) || (slot>=c->methodscount)) {
+                panic("error illegal slot for method in class(getParameterTypes)");
+    }
+
+    mi=&(c->methods[this->slot]);
+    if ( ((mi->flags & ACC_STATIC) && (obj))
+        || (!(mi->flags & ACC_STATIC) && (!obj)) ) {
+        (*env)->ThrowNew(env,loader_load(utf_new_char("java/lang/NullPointerException")),
+               "Static mismatch in Java_java_lang_reflect_Method_invokeNative");
+        return 0;
+    }
+
+    if (obj && (!builtin_instanceof((java_objectheader*)obj,c))) {
+        (*env)->ThrowNew(env,loader_load(utf_new_char("java/lang/IllegalArgumentException")),
+               "Object parameter of wrong type in Java_java_lang_reflect_Method_invokeNative");
        return 0;
+    }
+
+    return jni_method_invokeNativeHelper(env,mi,obj,params);
 }
 
 
index d0c52857250f15ecc001063923eee30ab437dd4b..88fa1807ca929d7890ca8dc32dace36bf4e8bfb1 100644 (file)
@@ -41,19 +41,19 @@ JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_forName(JNIEnv
         /* create utf string in which '.' is replaced by '/' */
         u = javastring_toutf(s, true);
         
-        if ( !(c = class_get(u)) ) {
-            log_text("forName: would need classloader");
-            /*utf_display(u);*/
-            
             c = loader_load(u);
             if (c == NULL) {
                 /* class was not loaded. raise exception */
-                exceptionptr = 
-                    native_new_and_init_string(class_java_lang_ClassNotFoundException, s);
-                return NULL;
-            }
-        }
+               if (! exceptionptr) {
+                       if (runverbose)
+                               log_text("Setting class not found exception");
+                       exceptionptr = 
+                           native_new_and_init_string(class_java_lang_ClassNotFoundException, s);
+               }
+           return NULL;
 
+       }
+       /*log_text("Returning class");*/
        use_class_as_object (c);
        return (java_lang_Class*) c;
 }
@@ -115,10 +115,11 @@ JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredConstructo
 
 
     
-    log_text("Java_java_lang_VMClass_getDeclaredConstructors");
+   log_text("Java_java_lang_VMClass_getDeclaredConstructors");
     utf_display(c->name);
     printf("\n");
-    class_showmethods(c);
+/*    class_showmethods(c);
+    class_showmethods(loader_load(utf_new_char("java/lang/Class")));*/
 
 
     /* determine number of constructors */
@@ -127,7 +128,6 @@ JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredConstructo
                (c->methods[i].name==utf_constr)) public_methods++;
 
     class_constructor = (classinfo*) loader_load(utf_new_char ("java/lang/reflect/Constructor"));
-
     if (!class_constructor) 
        return NULL;
 
@@ -492,12 +492,52 @@ JNIEXPORT s4 JNICALL Java_java_lang_VMClass_getModifiers ( JNIEnv *env ,  struct
  */
 JNIEXPORT struct java_lang_String* JNICALL Java_java_lang_VMClass_getName ( JNIEnv *env ,  struct java_lang_VMClass* this)
 {
+    u4 dimCnt;
+    classinfo *c = (classinfo*) (this->vmData);
 
-       u4 i;
-       classinfo *c = (classinfo*) (this->vmData);
-       java_lang_String *s = (java_lang_String*) javastring_new(c->name);
+    char *utf__ptr  =  c->name->text;      /* current position in utf-text */
+    char **utf_ptr  =  &utf__ptr;
+    char *desc_end =  utf_end(c->name);   /* points behind utf string     */
+    java_lang_String *s;
+    char *str;
+    s4   len;
+    s4   i;
+    if (runverbose) log_text("Java_java_lang_VMClass_getName");
+
+    dimCnt=0;
+    while ( *utf_ptr != desc_end ) {
+       if (utf_nextu2(utf_ptr)=='[') dimCnt++;
+       else break;
+    }
+    utf__ptr=(*utf_ptr)-1;
+
+    len=0;
+    if (((*utf_ptr)+1)==desc_end) {
+           for (i=0;i<PRIMITIVETYPE_COUNT;i++) {
+               if (primitivetype_table[i].typesig==(*utf__ptr)) {
+                       len=dimCnt*2+strlen(primitivetype_table[i].name);
+                       str=MNEW(char,len+1);
+                       strcpy(str,primitivetype_table[i].name);
+                       break;
+               }
+           }
+    }
+    if (len==0) {
+       len=dimCnt+strlen(c->name->text);
+       str=MNEW(char,len+1);
+       strcpy(str,utf__ptr);      
+    }  
+
+    dimCnt=len-2*dimCnt;
+    str[len]=0;
+    for (i=len-1;i>=dimCnt;i=i-2) {
+       str[i]=']';
+       str[i-1]='[';
+    }
+    s=(java_lang_String*)javastring_new(utf_new_char(str));
+    MFREE(str,char,len+1);
 
-       if (!s) return NULL;
+    if (!s) return NULL;
 
        /* return string where '/' is replaced by '.' */
        for (i=0; i<s->value->header.size; i++) {
index ea441550006ed52551f432dbaa95ec2bf427b511..5b364eb9eb0acb4fd253a80a95170ddbc521bfaa 100644 (file)
@@ -34,7 +34,7 @@
    calls instead of machine instructions, using the C calling
    convention.
 
-   $Id: builtin.c 669 2003-11-23 14:04:20Z edwin $
+   $Id: builtin.c 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -534,6 +534,10 @@ java_arrayheader *builtin_newarray(s4 size,vftbl *arrayvftbl)
         s4 dataoffset = desc->dataoffset;
         s4 componentsize = desc->componentsize;
 
+       if (size<0) {
+               exceptionptr=native_new_and_init(loader_load(utf_new_char("java/lang/NegativeArraySizeException")));
+               return NULL;
+       }
 #ifdef SIZE_FROM_CLASSINFO
         s4 actualsize = align_size(dataoffset + size * componentsize);
 #else
index d2a6cec2c423f79e96d6ee559f4b75e37bf59d5e..bfffb6ebe42a5367e947a9ff70c99a7fc8fcec4f 100644 (file)
@@ -31,7 +31,7 @@
             Philipp Tomsich
                        Edwin Steiner
 
-   $Id: global.h 670 2003-11-23 14:36:26Z edwin $
+   $Id: global.h 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -584,6 +584,7 @@ struct classinfo {                /* class structure                          */
        listnode    listnode;         /* linkage                                  */
 
        bool        initialized;      /* true, if class already initialised       */ 
+       bool        loaded;           /* true, if class already loaded            */
        bool        linked;           /* true, if class already linked            */
        s4          index;            /* hierarchy depth (classes) or index
                                         (interfaces)                             */ 
index 21ab14c86850dccc94f393a14ae2738c69c8310f..8ff55a17fa7cf07d47c57625ddbb5e1ba55a5655 100644 (file)
@@ -29,7 +29,7 @@
             Roman Obermaiser
             Mark Probst
 
-   $Id: loader.c 680 2003-11-24 23:12:29Z twisti $
+   $Id: loader.c 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -1501,7 +1501,7 @@ static int class_load(classinfo *c)
           add to list of unlinked classes                */
        list_remove (&unloadedclasses, c);
        list_addlast (&unlinkedclasses, c);
-
+       c->loaded=true;
        return true;
 }
 
@@ -1653,6 +1653,8 @@ class_new_array(classinfo *c)
      * Array classes which are created after the other classes have been
      * loaded and linked are linked explicitely.
      */
+        c->loaded=true;
+     
        if (loader_inited)
                loader_load(c->name);
 }
@@ -2762,10 +2764,23 @@ classinfo *loader_load (utf *topname)
                loadingtime += (stoptime-starttime);
                }
 
-       intsRestore();                          /* schani */
 
        loader_load_running--;
        
+       /* check if a former loader_load call tried to load/link the class and failed.
+               This is needed because the class didn't appear in the undloadclasses or unlinkedclasses list during this class; */
+       if (top) {
+               if (!top->loaded) {
+                       throw_classnotfoundexception2(top->name);
+                       top=NULL;
+               } else if  (!top->linked) {
+                       throw_linkageerror2(top->name);
+                       top=NULL;
+               }
+       }
+
+       intsRestore();                          /* schani */
+
        return top; 
 }
 
@@ -2786,9 +2801,10 @@ void create_primitive_classes()
                classinfo *c = class_new ( utf_new_char(primitivetype_table[i].name) );
                 c -> classUsed = NOTUSED; /* not used initially CO-RT */               
                c -> impldBy = NULL;
-
+               
                /* prevent loader from loading primitive class */
                list_remove (&unloadedclasses, c);
+               c->loaded=true;
                /* add to unlinked classes */
                list_addlast (&unlinkedclasses, c);             
                c -> super = class_java_lang_Object;
@@ -2806,6 +2822,7 @@ void create_primitive_classes()
                if (primitivetype_table[i].arrayname) {
                        c = class_new( utf_new_char(primitivetype_table[i].arrayname) );
                        primitivetype_table[i].arrayclass = c;
+                       c->loaded=true;
                        if (!c->linked) class_link(c);
                        primitivetype_table[i].arrayvftbl = c->vftbl;
                }
index b25f3f74122ebf01ac341099290f8b8f39737eab..4b39eb9fffefd986fbaa8f7fc65b444a226f1837 100644 (file)
@@ -35,7 +35,7 @@
        - the heap
        - additional support functions
 
-   $Id: tables.c 664 2003-11-21 18:24:01Z jowenn $
+   $Id: tables.c 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -720,7 +720,7 @@ classinfo *class_new(utf *u)
        count_class_infos += sizeof(classinfo);
 #endif
 
-       c = NEW (classinfo);
+       c = GCNEW (classinfo,1); /*JOWENN: NEW*/
        c -> vmClass = 0;
        c -> flags = 0;
        c -> name = u;
@@ -737,6 +737,7 @@ classinfo *class_new(utf *u)
        c -> methodscount = 0;
        c -> methods = NULL;
        c -> linked = false;
+       c -> loaded = false;
        c -> index = 0;
        c -> instancesize = 0;
        c -> header.vftbl = NULL;
@@ -815,6 +816,9 @@ classinfo *class_get(utf *u)
        slot = key & (class_hash.size-1);
        c    = class_hash.ptr[slot];
 
+/*
+       log_text("class_get: looking for class:");
+       utf_display(u); */
        /* search external hash-chain */
        while (c) {
                if (c->name->blength == u->blength) {
@@ -822,7 +826,11 @@ classinfo *class_get(utf *u)
                        /* compare classnames */
                        for (i=0; i<u->blength; i++) 
                                if (u->text[i] != c->name->text[i]) goto nomatch;
-
+/*
+                       log_text("class_get: class found");
+                       utf_display(u);
+                       log_text("");
+                       utf_display(c->name); */
                        /* class found in hashtable */                          
                        return c;
                }
index b25f3f74122ebf01ac341099290f8b8f39737eab..4b39eb9fffefd986fbaa8f7fc65b444a226f1837 100644 (file)
--- a/tables.c
+++ b/tables.c
@@ -35,7 +35,7 @@
        - the heap
        - additional support functions
 
-   $Id: tables.c 664 2003-11-21 18:24:01Z jowenn $
+   $Id: tables.c 682 2003-12-01 15:33:30Z jowenn $
 
 */
 
@@ -720,7 +720,7 @@ classinfo *class_new(utf *u)
        count_class_infos += sizeof(classinfo);
 #endif
 
-       c = NEW (classinfo);
+       c = GCNEW (classinfo,1); /*JOWENN: NEW*/
        c -> vmClass = 0;
        c -> flags = 0;
        c -> name = u;
@@ -737,6 +737,7 @@ classinfo *class_new(utf *u)
        c -> methodscount = 0;
        c -> methods = NULL;
        c -> linked = false;
+       c -> loaded = false;
        c -> index = 0;
        c -> instancesize = 0;
        c -> header.vftbl = NULL;
@@ -815,6 +816,9 @@ classinfo *class_get(utf *u)
        slot = key & (class_hash.size-1);
        c    = class_hash.ptr[slot];
 
+/*
+       log_text("class_get: looking for class:");
+       utf_display(u); */
        /* search external hash-chain */
        while (c) {
                if (c->name->blength == u->blength) {
@@ -822,7 +826,11 @@ classinfo *class_get(utf *u)
                        /* compare classnames */
                        for (i=0; i<u->blength; i++) 
                                if (u->text[i] != c->name->text[i]) goto nomatch;
-
+/*
+                       log_text("class_get: class found");
+                       utf_display(u);
+                       log_text("");
+                       utf_display(c->name); */
                        /* class found in hashtable */                          
                        return c;
                }
index 38dde2a2061834beb44db4a621fced7076de1114..7d35f1b7f3fd6184c21fa2a9dd0e805dd2220d0a 100644 (file)
@@ -84,9 +84,13 @@ public class urltest {
        {
            Object handler;
 
-           for (int i = 0; i < classes.length; ++i)
-               Class.forName(classes[i]).newInstance();
-
+           for (int i = 0; i < classes.length; ++i) {
+               try {
+                       Class.forName(classes[i]).newInstance();
+               } catch (Exception e) {
+                       System.out.println("Exception ("+e.toString()+") while trying to create an instance of: "+classes[i]);
+               }
+           }
            URL url = new URL("http://www.schani.net/");
 
            System.out.println("url " + url.toString());