new array classes cleanup + made tests (except fp*) work
authoredwin <none@none>
Sun, 23 Nov 2003 14:04:20 +0000 (14:04 +0000)
committeredwin <none@none>
Sun, 23 Nov 2003 14:04:20 +0000 (14:04 +0000)
23 files changed:
builtin.c
global.h
jit/parse.c
jni.c
loader.c
loader.h
nat/Makefile
nat/VMClass.c
nat/VMObject.c
nat/VMSecurityManager.c
nat/VMSystem.c
src/native/jni.c
src/native/vm/VMClass.c
src/native/vm/VMObject.c
src/native/vm/VMSecurityManager.c
src/native/vm/VMSystem.c
src/vm/builtin.c
src/vm/global.h
src/vm/jit/parse.c
src/vm/loader.c
src/vm/loader.h
tests/Makefile.am
toolbox/loging.c

index 288a6cec8e5c26b9c1bdb0838c1cfd565e6f904d..ea441550006ed52551f432dbaa95ec2bf427b511 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 664 2003-11-21 18:24:01Z jowenn $
+   $Id: builtin.c 669 2003-11-23 14:04:20Z edwin $
 
 */
 
@@ -235,16 +235,6 @@ s4 builtin_instanceof(java_objectheader *obj, classinfo *class)
 {
 #ifdef DEBUG
        log_text ("builtin_instanceof called");
-
-       /* XXX remove log */
-       /*
-       sprintf(logtext,"instanceof(");
-       utf_sprint(logtext+strlen(logtext),obj->vftbl->class->name);
-       sprintf(logtext+strlen(logtext),",");
-       utf_sprint(logtext+strlen(logtext),class);
-       sprintf(logtext+strlen(logtext),")");
-       dolog();
-       */
 #endif 
        if (!obj) return 0;
        return builtin_isanysubclass (obj->vftbl->class, class);
@@ -266,16 +256,6 @@ s4 builtin_checkcast(java_objectheader *obj, classinfo *class)
        log_text("builtin_checkcast called");
 #endif
 
-       /* XXX remove log */
-       /*
-       sprintf(logtext,"checkcast(");
-       utf_sprint(logtext+strlen(logtext),obj->vftbl->class->name);
-       sprintf(logtext+strlen(logtext),",");
-       utf_sprint(logtext+strlen(logtext),class);
-       sprintf(logtext+strlen(logtext),")");
-       dolog();
-       */
-       
        if (obj == NULL)
                return 1;
        if (builtin_isanysubclass(obj->vftbl->class, class))
@@ -301,24 +281,6 @@ s4 builtin_checkcast(java_objectheader *obj, classinfo *class)
                        
 ******************************************************************************/
 
-/* XXX delete */
-#if 0
-static s4 builtin_descriptorscompatible(constant_arraydescriptor *desc, constant_arraydescriptor *target)
-{
-       if (desc == target) return 1;
-       if (desc->arraytype != target->arraytype) return 0;
-
-       switch (target->arraytype) {
-       case ARRAYTYPE_OBJECT: 
-               return builtin_isanysubclass(desc->objectclass, target->objectclass);
-       case ARRAYTYPE_ARRAY:
-               return builtin_descriptorscompatible 
-                       (desc->elementdescriptor, target->elementdescriptor);
-       default: return 1;
-       }
-}
-#endif
-
 /* XXX inline this? */
 static s4 builtin_descriptorscompatible(arraydescriptor *desc,arraydescriptor *target)
 {
@@ -352,55 +314,6 @@ static s4 builtin_descriptorscompatible(arraydescriptor *desc,arraydescriptor *t
                        
 *****************************************************************************/
 
-/* XXX delete */
-#if 0
-s4 builtin_checkarraycast(java_objectheader *o, constant_arraydescriptor *desc)
-{
-       java_arrayheader *a = (java_arrayheader*) o;
-
-       if (!o) return 1;
-       if (o->vftbl->class != class_array) {
-#ifdef DEBUG
-               printf("#### checkarraycast failed 1\n");
-#endif
-               return 0;
-       }
-               
-       if (a->arraytype != desc->arraytype) {
-#ifdef DEBUG
-               printf("#### checkarraycast failed 2\n");
-#endif
-               return 0;
-       }
-       
-       switch (a->arraytype) {
-       case ARRAYTYPE_OBJECT: {
-               java_objectarray *oa = (java_objectarray*) o;
-               int result = builtin_isanysubclass(oa->elementtype, desc->objectclass);
-
-#ifdef DEBUG
-               if (!result)
-                       printf("#### checkarraycast failed 3\n");
-#endif
-               return result;
-       }
-       case ARRAYTYPE_ARRAY: {
-               java_arrayarray *aa = (java_arrayarray*) o;
-               int result = builtin_descriptorscompatible
-                       (aa->elementdescriptor, desc->elementdescriptor);
-
-#ifdef DEBUG
-               if (!result)
-                       printf("#### checkarraycast failed 4\n");
-#endif
-               return result;
-       }
-       default:   
-               return 1;
-       }
-}
-#endif
-
 s4 builtin_checkarraycast(java_objectheader *o,arraydescriptor *target)
 {
        arraydescriptor *desc;
@@ -411,15 +324,6 @@ s4 builtin_checkarraycast(java_objectheader *o,arraydescriptor *target)
        return builtin_descriptorscompatible(desc,target);
 }
 
-/* XXX delete */
-#if 0
-s4 builtin_arrayinstanceof(java_objectheader *obj, constant_arraydescriptor *desc)
-{
-       if (!obj) return 1;
-       return builtin_checkarraycast (obj, desc);
-}
-#endif
-
 s4 builtin_arrayinstanceof(java_objectheader *obj,arraydescriptor *desc)
 {
        if (!obj) return 1;
@@ -464,35 +368,6 @@ java_objectheader *builtin_throw_exception(java_objectheader *local_exceptionptr
 
 ******************************************************************************/
 
-/* XXX delete */
-#if 0
-s4 builtin_canstore(java_objectarray *a, java_objectheader *o)
-{
-       if (!o) return 1;
-       
-       switch (a->header.arraytype) {
-       case ARRAYTYPE_OBJECT:
-               if (!builtin_checkcast(o, a->elementtype)) {
-                       return 0;
-               }
-               return 1;
-               break;
-
-       case ARRAYTYPE_ARRAY:
-               if (!builtin_checkarraycast 
-                       (o, ((java_arrayarray*)a)->elementdescriptor)) {
-                       return 0;
-               }
-               return 1;
-               break;
-
-       default:
-               panic("builtin_canstore called with invalid arraytype");
-               return 0;
-       }
-}
-#endif
-
 s4 builtin_canstore (java_objectarray *a, java_objectheader *o)
 {
        arraydescriptor *desc;
@@ -515,14 +390,6 @@ s4 builtin_canstore (java_objectarray *a, java_objectheader *o)
     componentvftbl = desc->componentvftbl;
        valuevftbl = o->vftbl;
 
-       /* XXX remove log */
-       /*
-       log_text("builtin_canstore");
-       print_arraydescriptor(stdout,desc);
-       utf_sprint(logtext,valuevftbl->class->name);
-       dolog();
-       */
-
     if ((dim_m1 = desc->dimension - 1) == 0) {
                /* {a is a one-dimensional array} */
                /* {a is an array of references} */
@@ -530,9 +397,6 @@ s4 builtin_canstore (java_objectarray *a, java_objectheader *o)
                if (valuevftbl == componentvftbl)
                        return 1;
 
-               /* XXX remove log */
-               /* log_text("not same vftbl"); */
-
                if ((base = componentvftbl->baseval) <= 0)
                        /* an array of interface references */
                        return (valuevftbl->interfacetablelength > -base &&
@@ -652,18 +516,19 @@ java_objectheader *builtin_new(classinfo *c)
        return o;
 }
 
+/********************** Function: builtin_newarray **************************
+
+       Creates an array with the given vftbl on the heap.
 
+       Return value:  pointer to the array or NULL if no memory is available
 
+    CAUTION: The given vftbl must be the vftbl of the *array* class,
+    not of the element class.
+
+*****************************************************************************/
 
 java_arrayheader *builtin_newarray(s4 size,vftbl *arrayvftbl)
 {
-        /* XXX remove log */
-        /*
-        sprintf(logtext,"newarray size=%d class=",size);
-        utf_sprint(logtext+strlen(logtext),arrayvftbl->class->name);
-        dolog();
-        */
-
         java_arrayheader *a;
         arraydescriptor *desc = arrayvftbl->arraydesc;
         s4 dataoffset = desc->dataoffset;
@@ -690,149 +555,50 @@ java_arrayheader *builtin_newarray(s4 size,vftbl *arrayvftbl)
         return a;
 }
 
-java_objectarray *
-builtin_anewarray(s4 size,classinfo *component)
-{
-       return (java_objectarray*) builtin_newarray(size,class_array_of(component)->vftbl);
-}
-
-/* XXX delete */
-#if 0
-java_objectarray *builtin_anewarray (s4 size, classinfo *elementtype)
-{
-       java_objectarray *a;    
-       a = (java_objectarray*)__builtin_newarray(sizeof(java_objectarray),
-                                                                                         size, 
-                                                                                         true, 
-                                                                                         sizeof(void*), 
-                                                                                         ARRAYTYPE_OBJECT,
-                                                                                         elementtype);
-       if (!a) return NULL;
-
-       a->elementtype = elementtype;
-       return a;
-}
-#endif
+/********************** Function: builtin_anewarray *************************
 
-/******************** function: builtin_newarray_array ***********************
+       Creates an array of references to the given class type on the heap.
 
-       Creates an array of pointers to arrays on the heap.
-       Parameters:
-               size ......... number of elements
-       elementdesc .. pointer to the array description structure for the
-                                  element arrays
-       
        Return value:  pointer to the array or NULL if no memory is available
 
+    XXX This function does not do The Right Thing, because it uses a
+    classinfo pointer at runtime. builtin_newarray should be used
+    instead.
+
 *****************************************************************************/
 
-/* XXX delete */
-#if 0
-java_arrayarray *builtin_newarray_array 
-               (s4 size, constant_arraydescriptor *elementdesc)
+java_objectarray *
+builtin_anewarray(s4 size,classinfo *component)
 {
-       java_arrayarray *a; 
-       a = (java_arrayarray*)__builtin_newarray(sizeof(java_arrayarray),
-                                                                                        size, 
-                                                                                        true, 
-                                                                                        sizeof(void*), 
-                                                                                        ARRAYTYPE_ARRAY,
-                                                                                        elementdesc->objectclass);
-       if (!a) return NULL;
-
-       a->elementdescriptor = elementdesc;
-       return a;
+       return (java_objectarray*) builtin_newarray(size,class_array_of(component)->vftbl);
 }
-#endif
 
+/******************** Function: builtin_newarray_int ***********************
 
-/******************** function: builtin_newarray_boolean ************************
+       Creates an array of 32 bit Integers on the heap.
 
-       Creates an array of bytes on the heap. The array is designated as an array
-       of booleans (important for casts)
-       
        Return value:  pointer to the array or NULL if no memory is available
 
 *****************************************************************************/
 
-/* XXX delete */
-#if 0
-java_booleanarray *builtin_newarray_boolean (s4 size)
-{
-       java_booleanarray *a;   
-       a = (java_booleanarray*)__builtin_newarray(sizeof(java_booleanarray),
-                                                                                          size, 
-                                                                                          false, 
-                                                                                          sizeof(u1), 
-                                                                                          ARRAYTYPE_BOOLEAN,
-                                                                                          NULL);
-       return a;
-}
-#endif
-
 java_intarray *builtin_newarray_int (s4 size)
 {
        return (java_intarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_INT].arrayvftbl);
 }
 
-java_longarray *builtin_newarray_long (s4 size)
-{
-       return (java_longarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_LONG].arrayvftbl);
-}
-
-java_floatarray *builtin_newarray_float (s4 size)
-{
-       return (java_floatarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_FLOAT].arrayvftbl);
-}
-
-java_doublearray *builtin_newarray_double (s4 size)
-{
-       return (java_doublearray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_DOUBLE].arrayvftbl);
-}
-
-java_bytearray *builtin_newarray_byte (s4 size)
-{
-       return (java_bytearray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_BYTE].arrayvftbl);
-}
-
-java_chararray *builtin_newarray_char (s4 size)
-{
-       return (java_chararray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_CHAR].arrayvftbl);
-}
-
-java_shortarray *builtin_newarray_short (s4 size)
-{
-       return (java_shortarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_SHORT].arrayvftbl);
-}
-
-java_booleanarray *builtin_newarray_boolean (s4 size)
-{
-       return (java_booleanarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_BOOLEAN].arrayvftbl);
-}
-
-/******************** function: builtin_newarray_char ************************
+/******************** Function: builtin_newarray_long ***********************
 
-       Creates an array of characters on the heap.
+       Creates an array of 64 bit Integers on the heap.
 
        Return value:  pointer to the array or NULL if no memory is available
 
 *****************************************************************************/
 
-/* XXX delete */
-#if 0
-java_chararray *builtin_newarray_char (s4 size)
+java_longarray *builtin_newarray_long (s4 size)
 {
-       java_chararray *a;      
-       a = (java_chararray*)__builtin_newarray(sizeof(java_chararray),
-                                                                                       size, 
-                                                                                       false, 
-                                                                                       sizeof(u2), 
-                                                                                       ARRAYTYPE_CHAR,
-                                                                                       NULL);
-       return a;
+       return (java_longarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_LONG].arrayvftbl);
 }
 
-
 /******************** function: builtin_newarray_float ***********************
 
        Creates an array of 32 bit IEEE floats on the heap.
@@ -841,20 +607,11 @@ java_chararray *builtin_newarray_char (s4 size)
 
 *****************************************************************************/
 
-/* XXX delete */
 java_floatarray *builtin_newarray_float (s4 size)
 {
-       java_floatarray *a; 
-       a = (java_floatarray*)__builtin_newarray(sizeof(java_floatarray),
-                                                                                        size, 
-                                                                                        false, 
-                                                                                        sizeof(float), 
-                                                                                        ARRAYTYPE_FLOAT,
-                                                                                        NULL);
-       return a;
+       return (java_floatarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_FLOAT].arrayvftbl);
 }
 
-
 /******************** function: builtin_newarray_double ***********************
 
        Creates an array of 64 bit IEEE floats on the heap.
@@ -865,19 +622,9 @@ java_floatarray *builtin_newarray_float (s4 size)
 
 java_doublearray *builtin_newarray_double (s4 size)
 {
-       java_doublearray *a;    
-       a = (java_doublearray*)__builtin_newarray(sizeof(java_doublearray),
-                                                                                         size, 
-                                                                                         false, 
-                                                                                         sizeof(double), 
-                                                                                         ARRAYTYPE_DOUBLE,
-                                                                                         NULL);
-       return a;
+       return (java_doublearray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_DOUBLE].arrayvftbl);
 }
 
-
-
-
 /******************** function: builtin_newarray_byte ***********************
 
        Creates an array of 8 bit Integers on the heap.
@@ -886,232 +633,50 @@ java_doublearray *builtin_newarray_double (s4 size)
 
 *****************************************************************************/
 
-/* XXX delete */
 java_bytearray *builtin_newarray_byte (s4 size)
 {
-       java_bytearray *a;      
-       a = (java_bytearray*)__builtin_newarray(sizeof(java_bytearray),
-                                                                                       size, 
-                                                                                       false, 
-                                                                                       sizeof(u1), 
-                                                                                       ARRAYTYPE_BYTE,
-                                                                                       NULL);
-       return a;
+       return (java_bytearray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_BYTE].arrayvftbl);
 }
 
+/******************** function: builtin_newarray_char ************************
 
-/******************** function: builtin_newarray_short ***********************
-
-       Creates an array of 16 bit Integers on the heap.
+       Creates an array of characters on the heap.
 
        Return value:  pointer to the array or NULL if no memory is available
 
 *****************************************************************************/
 
-/* XXX delete */
-java_shortarray *builtin_newarray_short(s4 size)
+java_chararray *builtin_newarray_char (s4 size)
 {
-       java_shortarray *a; 
-       a = (java_shortarray*)__builtin_newarray(sizeof(java_shortarray),
-                                                                                        size, 
-                                                                                        false, 
-                                                                                        sizeof(s2), 
-                                                                                        ARRAYTYPE_SHORT,
-                                                                                        NULL);
-       return a;
+       return (java_chararray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_CHAR].arrayvftbl);
 }
 
+/******************** function: builtin_newarray_short ***********************
 
-/******************** Function: builtin_newarray_int ***********************
-
-       Creates an array of 32 bit Integers on the heap.
+       Creates an array of 16 bit Integers on the heap.
 
        Return value:  pointer to the array or NULL if no memory is available
 
 *****************************************************************************/
 
-<<<<<<< builtin.c
-/* XXX delete */
-java_intarray *builtin_newarray_int(s4 size)
+java_shortarray *builtin_newarray_short (s4 size)
 {
-       java_intarray *a;       
-       a = (java_intarray*)__builtin_newarray(sizeof(java_intarray),
-                                                                                  size, 
-                                                                                  false, 
-                                                                                  sizeof(s4), 
-                                                                                  ARRAYTYPE_INT,
-                                                                                  NULL);
-
-#if 0
-       if (a == NULL) {
-               asm_handle_builtin_exception(proto_java_lang_OutOfMemoryError);
-       }
-#endif
-
-       return a;
+       return (java_shortarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_SHORT].arrayvftbl);
 }
 
+/******************** function: builtin_newarray_boolean ************************
 
-/******************** Function: builtin_newarray_long ***********************
-
-       Creates an array of 64 bit Integers on the heap.
-
+       Creates an array of bytes on the heap. The array is designated as an array
+       of booleans (important for casts)
+       
        Return value:  pointer to the array or NULL if no memory is available
 
 *****************************************************************************/
 
-<<<<<<< builtin.c
-/* XXX delete */
-java_longarray *builtin_newarray_long(s4 size)
-{
-       java_longarray *a;      
-       a = (java_longarray*)__builtin_newarray(sizeof(java_longarray),
-                                                                                       size, 
-                                                                                       false, 
-                                                                                       sizeof(s8), 
-                                                                                       ARRAYTYPE_LONG,
-                                                                                       NULL);
-       return a;
-}
-
-
-/* XXX delete */
-/***************** function: builtin_multianewarray ***************************
-
-       Creates a multi-dimensional array on the heap. The dimensions are passed in
-       an array of Integers. The type for the array is passed as a reference to a
-       constant_arraydescriptor structure.
-
-       Return value:  pointer to the array or NULL if no memory is available
-
-******************************************************************************/
-
-       /* Helper functions */
-
-/* XXX delete */
-static java_arrayheader *multianewarray_part(java_intarray *dims, int thisdim,
-                                                                                        constant_arraydescriptor *desc)
-{
-       u4 size,i;
-       java_arrayarray *a;
-
-       size = dims->data[thisdim];
-       
-       if (thisdim == (dims->header.size - 1)) {
-               /* last dimension reached */
-               
-               switch (desc -> arraytype) {
-               case ARRAYTYPE_BOOLEAN:  
-                       return (java_arrayheader*) builtin_newarray_boolean(size);
-               case ARRAYTYPE_CHAR:  
-                       return (java_arrayheader*) builtin_newarray_char(size);
-               case ARRAYTYPE_FLOAT:  
-                       return (java_arrayheader*) builtin_newarray_float(size);
-               case ARRAYTYPE_DOUBLE:  
-                       return (java_arrayheader*) builtin_newarray_double(size);
-               case ARRAYTYPE_BYTE:  
-                       return (java_arrayheader*) builtin_newarray_byte(size);
-               case ARRAYTYPE_SHORT:  
-                       return (java_arrayheader*) builtin_newarray_short(size);
-               case ARRAYTYPE_INT:      
-                       return (java_arrayheader*) builtin_newarray_int(size);
-               case ARRAYTYPE_LONG:  
-                       return (java_arrayheader*) builtin_newarray_long(size);
-               case ARRAYTYPE_OBJECT:
-                       return (java_arrayheader*) builtin_anewarray(size, desc->objectclass);
-               
-               case ARRAYTYPE_ARRAY:
-                       return (java_arrayheader*) builtin_newarray_array(size, desc->elementdescriptor);
-               
-               default: panic("Invalid arraytype in multianewarray");
-               }
-       }
-
-       /* if the last dimension has not been reached yet */
-
-       if (desc->arraytype != ARRAYTYPE_ARRAY) 
-               panic("multianewarray with too many dimensions");
-
-       a = builtin_newarray_array(size, desc->elementdescriptor);
-       if (!a) return NULL;
-       
-       for (i = 0; i < size; i++) {
-               java_arrayheader *ea = 
-                       multianewarray_part(dims, thisdim + 1, desc->elementdescriptor);
-               if (!ea) return NULL;
-
-               a->data[i] = ea;
-       }
-               
-       return (java_arrayheader*) a;
-}
-
-/* XXX delete */
-java_arrayheader *builtin_multianewarray(java_intarray *dims,
-                                                                                constant_arraydescriptor *desc)
-{
-       return multianewarray_part(dims, 0, desc);
-}
-
-
-static java_arrayheader *nmultianewarray_part(int n, long *dims, int thisdim,
-                                                                                         constant_arraydescriptor *desc)
+java_booleanarray *builtin_newarray_boolean (s4 size)
 {
-       int size, i;
-       java_arrayarray *a;
-
-       size = (int) dims[thisdim];
-       
-       if (thisdim == (n - 1)) {
-               /* last dimension reached */
-               
-               switch (desc -> arraytype) {
-               case ARRAYTYPE_BOOLEAN:  
-                       return (java_arrayheader*) builtin_newarray_boolean(size); 
-               case ARRAYTYPE_CHAR:  
-                       return (java_arrayheader*) builtin_newarray_char(size); 
-               case ARRAYTYPE_FLOAT:  
-                       return (java_arrayheader*) builtin_newarray_float(size); 
-               case ARRAYTYPE_DOUBLE:  
-                       return (java_arrayheader*) builtin_newarray_double(size); 
-               case ARRAYTYPE_BYTE:  
-                       return (java_arrayheader*) builtin_newarray_byte(size); 
-               case ARRAYTYPE_SHORT:  
-                       return (java_arrayheader*) builtin_newarray_short(size); 
-               case ARRAYTYPE_INT:      
-                       return (java_arrayheader*) builtin_newarray_int(size); 
-               case ARRAYTYPE_LONG:  
-                       return (java_arrayheader*) builtin_newarray_long(size); 
-               case ARRAYTYPE_OBJECT:
-                       return (java_arrayheader*) builtin_anewarray(size,
-                                                                                                                desc->objectclass);
-               case ARRAYTYPE_ARRAY:
-                       return (java_arrayheader*) builtin_newarray_array(size,
-                                                                                                                         desc->elementdescriptor);
-               
-               default: panic ("Invalid arraytype in multianewarray");
-               }
-       }
-
-       /* if the last dimension has not been reached yet */
-
-       if (desc->arraytype != ARRAYTYPE_ARRAY) 
-               panic ("multianewarray with too many dimensions");
-
-       a = builtin_newarray_array(size, desc->elementdescriptor);
-       if (!a) return NULL;
-       
-       for (i = 0; i < size; i++) {
-               java_arrayheader *ea = 
-                       nmultianewarray_part(n, dims, thisdim + 1, desc->elementdescriptor);
-               if (!ea) return NULL;
-
-               a -> data[i] = ea;
-       }
-               
-       return (java_arrayheader*) a;
+       return (java_booleanarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_BOOLEAN].arrayvftbl);
 }
-#endif
 
 /**************** function: builtin_nmultianewarray ***************************
 
@@ -1158,45 +723,6 @@ java_arrayheader *builtin_nmultianewarray (int n,
        return a;
 }
 
-/* XXX delete */
-#if 0
-java_arrayheader *builtin_nmultianewarray (int size,
-                                                                                  constant_arraydescriptor *desc, long *dims)
-{
-       (void) builtin_newarray_int(size); /* for compatibility with -old */
-       return nmultianewarray_part (size, dims, 0, desc);
-}
-#endif
-
-
-
-/************************* function: builtin_aastore *************************
-
-       Stores a reference to an object into an object array or into an array
-       array. Before any action is performed, the validity of the operation is
-       checked.
-
-       Return value:  1 ... ok
-                                  0 ... this object cannot be stored into this array
-
-*****************************************************************************/
-
-/* XXX delete */
-#if 0
-s4 builtin_aastore (java_objectarray *a, s4 index, java_objectheader *o)
-{
-       if (builtin_canstore(a,o)) {
-               a->data[index] = o;
-               return 1;
-       }
-       return 0;
-}
-#endif
-
-
-
-
-
 /*****************************************************************************
                                          METHOD LOGGING
 
index 6b8cee2828a3e2b403002b5ae656bb8064eaf5a8..b4422a1b812f4d802726225554edbb35267345cc 100644 (file)
--- a/global.h
+++ b/global.h
@@ -29,8 +29,9 @@
 
    Changes: Mark Probst
             Philipp Tomsich
+                       Edwin Steiner
 
-   $Id: global.h 664 2003-11-21 18:24:01Z jowenn $
+   $Id: global.h 669 2003-11-23 14:04:20Z edwin $
 
 */
 
@@ -306,24 +307,6 @@ typedef struct {            /* NameAndType (Field or Method)                  */
 } constant_nameandtype;
 
 
-/* 
-   arraydescriptor describes array types. Basic array types contain their
-   type in the arraytype field, objectclass contains a class pointer for
-   arrays of objects (arraytype == ARRAYTYPE_OBJECT), elementdescriptor
-   contains a pointer to an arraydescriptor which describes the element
-   types in the case of arrays of arrays (arraytype == ARRAYTYPE_ARRAY).
-*/
-
-/* XXX delete */
-#if 0
-typedef struct constant_arraydescriptor {
-       int arraytype;
-       classinfo *objectclass;
-       struct constant_arraydescriptor *elementdescriptor;
-} constant_arraydescriptor;
-#endif
-
-
 /* data structures of the runtime system **************************************/
 
 /* objects *********************************************************************
@@ -340,10 +323,10 @@ struct java_objectheader {              /* header for all objects             */
 
 /* arrays **********************************************************************
 
-       All arrays are objects (they need the object header with a pointer to a
-       vvftbl (array class table). There is only one class for all arrays. The    XXX change
-       type of an array is stored directly in the array object. Following types
-       are defined:
+       All arrays are objects (they need the object header with a pointer
+       to a vftbl (array class table). There is one class for each array
+       type. The array type is described by an arraydescriptor struct
+       which is referenced by the vftbl.
 */
 
 /* CAUTION: Don't change the numerical values! These constants (with
@@ -423,15 +406,6 @@ typedef struct java_objectarray {
        java_objectheader *data[1];
 } java_objectarray;
 
-/* XXX delete */
-#if 0
-typedef struct java_arrayarray {
-       java_arrayheader header;
-       constant_arraydescriptor *elementdescriptor;
-       java_arrayheader *data[1];
-} java_arrayarray;
-#endif
-
 /* structure for primitive classes ********************************************/
 
 typedef struct primitivetypeinfo {
index 99da6bdd9cf6b1c3190949b23c6bff159faed417..15874fb0987ec181acb33f6d4566845bcd4b056c 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes: Carolyn Oates
 
-   $Id: parse.c 665 2003-11-21 18:36:43Z jowenn $
+   $Id: parse.c 669 2003-11-23 14:04:20Z edwin $
 
 */
 
@@ -650,9 +650,6 @@ void parse()
                nextp = p + jcommandsize[opcode];   /* compute next instruction start */
                s_count += stackreq[opcode];            /* compute stack element count    */
 
-               /* XXX remove log */
-               /*              log_text(opcode_names[opcode]); */
-               
                switch (opcode) {
                case JAVA_NOP:
                        break;
diff --git a/jni.c b/jni.c
index 7730cd67b5667f9dd8cb73a08778a9651c26da5a..cdb6a47a374aa2f5999412347e1de5c3272e798d 100644 (file)
--- a/jni.c
+++ b/jni.c
@@ -26,7 +26,7 @@
 
    Authors: ?
 
-   $Id: jni.c 664 2003-11-21 18:24:01Z jowenn $
+   $Id: jni.c 669 2003-11-23 14:04:20Z edwin $
 
 */
 
@@ -140,7 +140,7 @@ void fill_callblock(void *obj,utf *descr,jni_callblock blk[], va_list data, char
                            break;                      
                         }
              case '[' : {
-                         /* XXX */
+                         /* XXX need arrayclass change? */
                            /* arrayclass */
                                    char *start = *utf_ptr;
                            char ch;
index cc6a5c5db89c5a5c00681ad375f312d66c00fc23..5aa27905b11c12db36515f62558e1f32a22f0093 100644 (file)
--- a/loader.c
+++ b/loader.c
@@ -29,7 +29,7 @@
             Roman Obermaiser
             Mark Probst
 
-   $Id: loader.c 664 2003-11-21 18:24:01Z jowenn $
+   $Id: loader.c 669 2003-11-23 14:04:20Z edwin $
 
 */
 
@@ -172,50 +172,6 @@ java_objectheader *proto_java_lang_ArithmeticException;
 java_objectheader *proto_java_lang_ArrayStoreException;
 java_objectheader *proto_java_lang_ThreadDeath;
 
-/* XXX delete */
-#if 0
-void override_array_class(classinfo *c) {
-       int i;
-       classinfo *sup;
-       utf *u=utf_new_char("clone");
-       sup=c->super;
-       class_showmethods(c);
-
-       for (i=0;i<sup->methodscount;i++) {
-               if (sup->methods[i].name==u) {
-                       method_clone_array.class = c;
-                       method_clone_array. flags = ACC_PUBLIC;
-                       method_clone_array.name =  utf_new_char("clone");
-                       method_clone_array.descriptor = utf_new_char("()Ljava/lang/Object;");
-
-                       method_clone_array.jcode = NULL;
-                       method_clone_array.exceptiontable = NULL;
-                       method_clone_array.entrypoint = NULL;
-                       method_clone_array.mcode = NULL;
-                       method_clone_array.stubroutine = NULL;
-                       method_clone_array.methodUsed = NOTUSED;
-                       method_clone_array.monoPoly = MONO;
-                       method_clone_array.subRedefs = 0;
-                       method_clone_array.subRedefsUsed = 0;
-                       method_clone_array.flags=0;
-                       method_clone_array.xta = NULL;
-                        method_clone_array.stubroutine = createnativestub (&builtin_clone_array, &method_clone_array);
-                       c->vftbl->table[sup->methods[i].vftblindex]=method_clone_array.stubroutine;
-                       log_text("Found !!!! :)))))))))))))))))))))))))))))))))))))))))))))))))");
-               }
-       
-
-       }
-}
-#endif
-
-
-
-
-
-
-
-
 
 /************* functions for reading classdata *********************************
 
@@ -442,12 +398,6 @@ bool suck_start (utf *classname) {
                        classfile = fopen(filename, "r");
                        if (classfile) {                                       /* file exists */
 
-                               /* XXX remove */
-                               /*
-                                 sprintf(logtext,"Opening file: %s",filename);
-                                 dolog();
-                               */
-                       
                                /* determine size of classfile */
 
                                err = stat (filename, &buffer);
@@ -656,7 +606,7 @@ static void checkfielddescriptor (char *utf_ptr, char *end_pos)
 {
        char *tstart;  /* pointer to start of classname */
        char ch;
-       char *start = utf_ptr; /* XXX remove */
+       char *start = utf_ptr;
 
        switch (*utf_ptr++) {
          case 'B':
@@ -698,7 +648,7 @@ static void checkmethoddescriptor (utf *d)
        char *end_pos = utf_end(d);  /* points behind utf string       */
        char *tstart;                /* pointer to start of classname  */
        char c,ch;
-       char *start; /* XXX remove */
+       char *start;
 
        /* method descriptor must start with parenthesis */
        /* XXX check length */
@@ -707,7 +657,7 @@ static void checkmethoddescriptor (utf *d)
        /* XXX check length */
        /* check arguments */
        while ((c = *utf_ptr++) != ')') {
-               start = utf_ptr-1; /* XXX remove */
+               start = utf_ptr-1;
                
                switch (c) {
                case 'B':
@@ -742,99 +692,6 @@ static void checkmethoddescriptor (utf *d)
                checkfielddescriptor (utf_ptr,end_pos);
 }
 
-
-/******************** Function: buildarraydescriptor ***************************
-
-       creates a constant_arraydescriptor structure for the array type named by an
-       utf string
-       
-*******************************************************************************/
-
-/* XXX delete */
-#if 0
-constant_arraydescriptor * buildarraydescriptor(char *utf_ptr, u4 namelen)
-{
-       constant_arraydescriptor *d;
-
-       /* class_new( utf_new(utf_ptr,namelen) ); */ /* XXX remove */
-       
-       if (*utf_ptr++ != '[') panic ("Attempt to build arraydescriptor for non-array");
-
-       d = NEW (constant_arraydescriptor);
-       d -> objectclass = NULL;
-       d -> elementdescriptor = NULL;
-
-#ifdef STATISTICS
-       count_const_pool_len += sizeof(constant_arraydescriptor);
-#endif
-
-       switch (*utf_ptr) {
-       case 'Z': d -> arraytype = ARRAYTYPE_BOOLEAN; break;
-       case 'B': d -> arraytype = ARRAYTYPE_BYTE; break;
-       case 'C': d -> arraytype = ARRAYTYPE_CHAR; break;
-       case 'D': d -> arraytype = ARRAYTYPE_DOUBLE; break;
-       case 'F': d -> arraytype = ARRAYTYPE_FLOAT; break;
-       case 'I': d -> arraytype = ARRAYTYPE_INT; break;
-       case 'J': d -> arraytype = ARRAYTYPE_LONG; break;
-       case 'S': d -> arraytype = ARRAYTYPE_SHORT; break;
-
-       case '[':
-               d -> arraytype = ARRAYTYPE_ARRAY; 
-               d -> elementdescriptor = buildarraydescriptor (utf_ptr, namelen-1);
-               break;
-               
-       case 'L':
-               d -> arraytype = ARRAYTYPE_OBJECT;
-
-               d -> objectclass = class_new ( utf_new(utf_ptr+1, namelen-3) );
-                d -> objectclass  -> classUsed = NOTUSED; /* not used initially CO-RT */
-               d -> objectclass  -> impldBy = NULL;
-               break;
-       }
-       return d;
-}
-#endif
-
-
-/******************* Function: freearraydescriptor *****************************
-
-       removes a structure created by buildarraydescriptor from memory
-       
-*******************************************************************************/
-
-/* XXX delete */
-#if 0
-static void freearraydescriptor (constant_arraydescriptor *d)
-{
-       while (d) {
-               constant_arraydescriptor *n = d->elementdescriptor;
-               FREE (d, constant_arraydescriptor);
-               d = n;
-               }
-}
-#endif
-
-/*********************** Function: displayarraydescriptor *********************/
-
-/* XXX delete */
-#if 0
-static void displayarraydescriptor (constant_arraydescriptor *d)
-{
-       switch (d->arraytype) {
-       case ARRAYTYPE_BOOLEAN: printf ("boolean[]"); break;
-       case ARRAYTYPE_BYTE: printf ("byte[]"); break;
-       case ARRAYTYPE_CHAR: printf ("char[]"); break;
-       case ARRAYTYPE_DOUBLE: printf ("double[]"); break;
-       case ARRAYTYPE_FLOAT: printf ("float[]"); break;
-       case ARRAYTYPE_INT: printf ("int[]"); break;
-       case ARRAYTYPE_LONG: printf ("long[]"); break;
-       case ARRAYTYPE_SHORT: printf ("short[]"); break;
-       case ARRAYTYPE_ARRAY: displayarraydescriptor(d->elementdescriptor); printf("[]"); break;
-       case ARRAYTYPE_OBJECT: utf_display(d->objectclass->name); printf("[]"); break;
-       }
-}
-#endif
-
 /***************** Function: print_arraydescriptor ****************************
 
        Debugging helper for displaying an arraydescriptor
@@ -1554,9 +1411,6 @@ static int class_load (classinfo *c)
        count_class_loads++;
 #endif
 
-       /* XXX remove */
-       /*      loadverbose = 1; */
-       
        /* output for debugging purposes */
        if (loadverbose) {              
 
@@ -1745,13 +1599,6 @@ class_new_array(classinfo *c)
        methodinfo *clone;
        int namelen;
 
-       /* XXX remove logging */
-       /*
-       sprintf(logtext,"new array class: ");
-       utf_sprint(logtext+strlen(logtext),c->name);
-       dolog();
-       */
-       
        /* Array classes are not loaded from classfiles. */
        list_remove (&unloadedclasses, c);
 
@@ -1768,15 +1615,6 @@ class_new_array(classinfo *c)
                  break;
 
          case 'L':
-                 /* XXX remove logging */
-                 /*
-                 sprintf(logtext,"Component class: ");
-                 utf_sprint(logtext+strlen(logtext),utf_new(c->name->text + 2,namelen - 3));
-                 dolog();
-                 if (class_get(utf_new(c->name->text + 2,namelen - 3)))
-                         log_text("Already created.");
-                 */
-                 
                  /* c is an array of objects. */
                  if (namelen < 4 || c->name->text[namelen-1] != ';')
                          panic("Invalid array class name.");
@@ -1836,15 +1674,6 @@ class_link_array(classinfo *c)
        arraydescriptor *desc;
        vftbl *compvftbl;
 
-       /* XXX remove logging */
-
-       /*
-         sprintf(logtext,"linking array class: ");
-         utf_sprint(logtext+strlen(logtext),c->name);
-         dolog();
-       */
-       
-       
        /* Check the component type */
        switch (c->name->text[1]) {
          case '[':
@@ -1923,12 +1752,6 @@ class_link_array(classinfo *c)
                desc->dimension = 1;
        }
 
-       /* XXX remove logging */
-       /*
-         print_arraydescriptor(stdout,desc); 
-         printf("\n");
-       */
-
        return desc;
 }
 
@@ -1960,13 +1783,6 @@ void class_link(classinfo *c)
        arraydescriptor *arraydesc = NULL;  /* descriptor for array classes       */
 
 
-       /* XXX remove log */
-       /*
-         sprintf(logtext,"trying to link: ");
-         utf_sprint(logtext+strlen(logtext),c->name);
-         dolog();
-       */
-       
        /*  check if all superclasses are already linked, if not put c at end of
            unlinked list and return. Additionally initialize class fields.       */
 
@@ -3060,27 +2876,6 @@ classinfo *class_from_descriptor(char *utf_ptr,char *end_ptr,char **next,int mod
        }
 }
 
-/***************** function: create_array_class ********************************
-
-       create class representing an array
-
-********************************************************************************/
-
-/* XXX delete */
-#if 0
-classinfo *create_array_class(utf *u)
-{  
-       classinfo *c = class_new (u);
-       /* prevent loader from loading the array class */
-       list_remove (&unloadedclasses, c);
-       /* add to unlinked classes */
-       list_addlast (&unlinkedclasses, c);
-       c -> super = class_java_lang_Object;
-       class_link(c);
-       return c;
-}
-#endif
-
 /*************** function: create_pseudo_classes *******************************
 
        create pseudo classes used by the typechecker
index 1e249fcd02516adb6f59beb42f9e675fd31c195f..35cd9bafc6125e0194689fe3429d2deb3b6fb6c9 100644 (file)
--- a/loader.h
+++ b/loader.h
@@ -26,7 +26,7 @@
 
    Authors: Reinhard Grafl
 
-   $Id: loader.h 664 2003-11-21 18:24:01Z jowenn $
+   $Id: loader.h 669 2003-11-23 14:04:20Z edwin $
 */
 
 
@@ -108,9 +108,6 @@ classinfo *class_primitive_from_sig(char sig);
 #define CLASSLOAD_LOAD  2
 classinfo *class_from_descriptor(char *utf_ptr,char *end_ptr,char **next,int mode);
 
-/* create class representing specific arraytype */ /* XXX delete */
-classinfo *create_array_class(utf *u);
-
 /* (used by class_new, don't use directly) */
 void class_new_array(classinfo *c);
 
index a3ee4b96d7623acc33e8de9e15f499c516c0c03d..9d0442111f2d7c03d5a8f1c0f166f50db3b88bd8 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# Makefile.in generated by automake 1.7.2 from Makefile.am.
 # nat/Makefile.  Generated from Makefile.in by configure.
 
 # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
 # PARTICULAR PURPOSE.
 
 
-SHELL = /bin/sh
 
 srcdir = .
 top_srcdir = ..
 
-prefix = /usr/local/cacao
-exec_prefix = ${prefix}
-
-bindir = ${exec_prefix}/bin
-sbindir = ${exec_prefix}/sbin
-libexecdir = ${exec_prefix}/libexec
-datadir = ${prefix}/share
-sysconfdir = ${prefix}/etc
-sharedstatedir = ${prefix}/com
-localstatedir = ${prefix}/var
-libdir = ${exec_prefix}/lib
-infodir = ${prefix}/info
-mandir = ${prefix}/man
-includedir = ${prefix}/include
-oldincludedir = /usr/include
 pkgdatadir = $(datadir)/cacao
 pkglibdir = $(libdir)/cacao
 pkgincludedir = $(includedir)/cacao
 top_builddir = ..
 
-ACLOCAL = ${SHELL} /home/jowenn/development/uni/cacao/cacaodev/missing --run aclocal-1.6
-AUTOCONF = ${SHELL} /home/jowenn/development/uni/cacao/cacaodev/missing --run autoconf
-AUTOMAKE = ${SHELL} /home/jowenn/development/uni/cacao/cacaodev/missing --run automake-1.6
-AUTOHEADER = ${SHELL} /home/jowenn/development/uni/cacao/cacaodev/missing --run autoheader
-
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = /bin/install -c
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_DATA = ${INSTALL} -m 644
+INSTALL = /usr/bin/install -c
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = ${INSTALL}
 INSTALL_HEADER = $(INSTALL_DATA)
-transform = s,x,x,
+transform = $(program_transform_name)
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-host_alias = 
 host_triplet = i686-pc-linux-gnu
-
-EXEEXT = 
-OBJEXT = o
-PATH_SEPARATOR = :
-AMTAR = ${SHELL} /home/jowenn/development/uni/cacao/cacaodev/missing --run tar
+ACLOCAL = ${SHELL} /home/edwin/cvsspace/cacaodev/missing --run aclocal-1.7
+AMDEP_FALSE = #
+AMDEP_TRUE = 
+AMTAR = ${SHELL} /home/edwin/cvsspace/cacaodev/missing --run tar
 ARCH_DIR = i386
+AUTOCONF = ${SHELL} /home/edwin/cvsspace/cacaodev/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/edwin/cvsspace/cacaodev/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/edwin/cvsspace/cacaodev/missing --run automake-1.7
 AWK = gawk
-AWTPEERS = java.awt.peer.ComponentPeer                 java.awt.peer.MenuPeer          java.awt.peer.MenuItemPeer              gnu.java.awt.peer.gtk.GdkPixbufDecoder          gnu.java.awt.peer.gtk.GtkMenuBarPeer            gnu.java.awt.peer.gtk.GtkScrollPanePeer                 gnu.java.awt.peer.gtk.GtkMenuPeer               gnu.java.awt.peer.gtk.GtkTextComponentPeer              gnu.java.awt.peer.gtk.GtkComponentPeer          gnu.java.awt.peer.gtk.GtkPopupMenuPeer          gnu.java.awt.peer.gtk.GtkCheckboxGroupPeer              gnu.java.awt.peer.gtk.GtkMenuItemPeer           gnu.java.awt.peer.gtk.GdkGraphics               gnu.java.awt.peer.gtk.GtkToolkit                gnu.java.awt.peer.gtk.GtkCanvasPeer             gnu.java.awt.peer.gtk.GtkFramePeer              gnu.java.awt.peer.gtk.GdkFontMetrics            gnu.java.awt.peer.gtk.GtkScrollbarPeer          gnu.java.awt.peer.gtk.GtkGenericPeer            gnu.java.awt.peer.gtk.GtkListPeer               gnu.java.awt.peer.gtk.GtkLabelPeer              gnu.java.awt.peer.gtk.GtkTextAreaPeer           gnu.java.awt.peer.gtk.GtkCheckboxPeer           gnu.java.awt.peer.gtk.GtkFileDialogPeer                 gnu.java.awt.peer.gtk.GtkImagePainter           gnu.java.awt.peer.gtk.GtkChoicePeer             gnu.java.awt.peer.gtk.GtkPanelPeer              gnu.java.awt.peer.gtk.GtkMainThread             gnu.java.awt.peer.gtk.GtkButtonPeer             gnu.java.awt.peer.gtk.GtkTextFieldPeer          gnu.java.awt.peer.gtk.GtkCheckboxMenuItemPeer           gnu.java.awt.peer.gtk.GtkClipboard              gnu.java.awt.peer.gtk.GtkWindowPeer
-AWT_OBJS = classpathbin/i386/native/jni/gtk-peer/.libs/libgtkpeer.a                    -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0                       -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0                    -lgthread-2.0 -lart_lgpl_2
+AWTPEERS = 
+AWT_OBJS = 
 CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -Wall -O0 -g3 -D__I386__
 COMPILER_OBJECTS = 
+CPP = gcc -E
+CPPFLAGS = 
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
 DEPDIR = .deps
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = grep -E
+EXEEXT = 
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
 INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LDFLAGS = 
+LIBOBJS = 
+LIBS = -lm 
 LIBTHREAD = libthreads.a
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/edwin/cvsspace/cacaodev/missing --run makeinfo
+OBJEXT = o
 PACKAGE = cacao
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = 
+PACKAGE_STRING = 
+PACKAGE_TARNAME = 
+PACKAGE_VERSION = 
+PATH_SEPARATOR = :
 RANLIB = ranlib
+SET_MAKE = 
+SHELL = /bin/sh
 STRIP = 
 THREAD_OBJ = threads/libthreads.a
-USEGTK = yes
+USEGTK = no
 VERSION = 0.40
-ZIP_C = unzip.c
-ZIP_LIBS = -lz
+ZIP_C = 
+ZIP_LIBS = 
+ac_ct_CC = gcc
+ac_ct_RANLIB = ranlib
+ac_ct_STRIP = 
+am__fastdepCC_FALSE = #
+am__fastdepCC_TRUE = 
 am__include = include
 am__quote = 
-install_sh = /home/jowenn/development/uni/cacao/cacaodev/install-sh
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias = 
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+datadir = ${prefix}/share
+exec_prefix = ${prefix}
+host = i686-pc-linux-gnu
+host_alias = 
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+includedir = ${prefix}/include
+infodir = ${prefix}/info
+install_sh = /home/edwin/cvsspace/cacaodev/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localstatedir = ${prefix}/var
+mandir = ${prefix}/man
+oldincludedir = /usr/include
+prefix = /usr/local/cacao
+program_transform_name = s,x,x,
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+subdirs =  mm/boehm-gc
+sysconfdir = ${prefix}/etc
+target_alias = 
 EXTRA_DIST = AccessController.c Adler32.c Array.c BigInteger.c CRC32.c Class.c ClassLoader.c ClassLoader_NativeLibrary.c Compiler.c Constructor.c DatagramPacket.c Deflater.c Double.c Field.c FileDescriptor.c FileInputStream.c FileOutputStream.c FileSystem.c Finalizer.c Float.c InetAddress.c InetAddressImpl.c Inflater.c JarFile.c Math.c Method.c Object.c ObjectInputStream.c ObjectStreamClass.c Package.c PlainDatagramSocketImpl.c PlainSocketImpl.c RandomAccessFile.c ResourceBundle.c Runtime.c SecurityManager.c SocketInputStream.c SocketOutputStream.c String.c System.c Thread.c Throwable.c UnixFileSystem.c ZipEntry.c ZipFile.c
 subdir = nat
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -105,13 +142,22 @@ uninstall-info-am:
 tags: TAGS
 TAGS:
 
+ctags: CTAGS
+CTAGS:
+
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
 top_distdir = ..
 distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-       @list='$(DISTFILES)'; for file in $$list; do \
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+         esac; \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
          dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
          if test "$$dir" != "$$file" && test "$$dir" != "."; then \
@@ -195,6 +241,14 @@ mostlyclean: mostlyclean-am
 
 mostlyclean-am: mostlyclean-generic
 
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
 uninstall-am: uninstall-info-am
 
 .PHONY: all all-am check check-am clean clean-generic distclean \
@@ -203,7 +257,8 @@ uninstall-am: uninstall-info-am
        install-exec-am install-info install-info-am install-man \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-generic uninstall uninstall-am uninstall-info-am
+       mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index fec51d946a93e4ac132cc14cab7b9fbe8e3d6b7d..aeb7bb7987864e8c714d4194d15cb5e2923c04d2 100644 (file)
@@ -242,37 +242,6 @@ JNIEXPORT struct java_lang_ClassLoader* JNICALL Java_java_lang_VMClass_getClassL
  * Method:    getModifiers
  * Signature: ()I
  */
-/* XXX delete */
-#if 0
-JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_getComponentType (JNIEnv *env ,  struct java_lang_VMClass* this )
-{
-  classinfo *c = NULL; 
-
-  if ((classinfo*) (this->vmData) == class_array) {
-       java_arrayheader *a = (java_arrayheader*) (this->vmData);
-
-       /* determine componenttype */
-       switch (a->arraytype) {
-          case ARRAYTYPE_BYTE:    c = class_java_lang_Byte; break;  
-           case ARRAYTYPE_BOOLEAN: c = class_java_lang_Boolean; break;   
-          case ARRAYTYPE_CHAR:    c = class_java_lang_Character; break;   
-          case ARRAYTYPE_SHORT:   c = class_java_lang_Short; break;    
-          case ARRAYTYPE_INT:     c = class_java_lang_Integer; break;   
-          case ARRAYTYPE_LONG:    c = class_java_lang_Long; break;   
-          case ARRAYTYPE_FLOAT:   c = class_java_lang_Float; break;   
-          case ARRAYTYPE_DOUBLE:  c = class_java_lang_Double; break;   
-          case ARRAYTYPE_OBJECT:  c = ((java_objectarray*) a) -> elementtype; break;
-          case ARRAYTYPE_ARRAY:   c = (classinfo *) ((java_arrayarray*) a) -> data[0]; break;
-          default: panic("illegal arraytype");
-       }               
-
-       /* set vftbl */
-       use_class_as_object (c);
-  }
-  
-  return (java_lang_Class*) c;
-}
-#endif
 JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_getComponentType (JNIEnv *env ,  struct java_lang_VMClass* this )
 {
     classinfo *thisclass = (classinfo*) (this->vmData);
@@ -731,16 +700,6 @@ JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_getSuperclass (
  * Method:    isArray
  * Signature: ()Z
  */
-/* XXX delete */
-#if 0
-JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isArray ( JNIEnv *env ,  struct java_lang_VMClass* this)
-{
-        classinfo *c = (classinfo*) (this->vmData);
-
-       if (c == class_array || c->name->text[0] == '[')  return true;
-       return false;
-}
-#endif
 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isArray ( JNIEnv *env ,  struct java_lang_VMClass* this)
 {
     classinfo *c = (classinfo*) (this->vmData);
index 6a02806b019cb3ccc8036a6fac1ff39892dbfbf5..9ce4f843b3d279620eb4424525b682241a54c7e7 100644 (file)
@@ -5,76 +5,6 @@
  * Method:    clone
  * Signature: ()Ljava/lang/Object;
  */
-/* XXX delete */
-#if 0
-JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_VMObject_clone ( JNIEnv *env ,  jclass clazz, struct java_lang_Cloneable* this)
-{
-/*     log_text("Java_java_lang_VMObject_clone called");
-       utf_display(((java_objectheader*)this)->vftbl->class->name);
-       log_text("starting cloning");     */
-       classinfo *c;
-       java_lang_Object *new;
-
-       if (((java_objectheader*)this)->vftbl->class == class_array)
-         {
-           static u4 multiplicator[10];
-           static int is_initialized = 0;
-
-           java_arrayheader *array = (java_arrayheader*)this;
-           u4 size;
-
-           if (!is_initialized)
-             {
-               multiplicator[ARRAYTYPE_INT] = sizeof(s4);
-               multiplicator[ARRAYTYPE_LONG] = sizeof(s8);
-               multiplicator[ARRAYTYPE_FLOAT] = sizeof(float);
-               multiplicator[ARRAYTYPE_DOUBLE] = sizeof(double);
-               multiplicator[ARRAYTYPE_BYTE] = sizeof(s1);
-               multiplicator[ARRAYTYPE_CHAR] = sizeof(u2);
-               multiplicator[ARRAYTYPE_SHORT] = sizeof(s2);
-               multiplicator[ARRAYTYPE_BOOLEAN] = sizeof(u1);
-               multiplicator[ARRAYTYPE_OBJECT] = sizeof(void*);
-               multiplicator[ARRAYTYPE_ARRAY] = sizeof(void*);
-               is_initialized = 1;
-             }
-
-           size = sizeof(java_arrayheader)
-             + array->size * multiplicator[array->arraytype];
-           if (array->arraytype == ARRAYTYPE_OBJECT /* elementtype */
-               || array->arraytype == ARRAYTYPE_ARRAY) /* elementdescriptor */
-               size += sizeof(void*);
-
-           if (array->arraytype==ARRAYTYPE_OBJECT || array->arraytype==ARRAYTYPE_OBJECT)
-               size+=sizeof(void*);
-
-           new = (java_lang_Object*)heap_allocate(size, false, NULL);
-           memcpy(new, this, size);
-
-           return new;
-         }
-       else
-         {
-            if (!class_java_lang_Cloneable)
-                  class_java_lang_Cloneable =
-                        class_new ( utf_new_char ("java/lang/Cloneable") );
-           if (! builtin_instanceof ((java_objectheader*) this, class_java_lang_Cloneable) ) {
-               exceptionptr = native_new_and_init (class_java_lang_CloneNotSupportedException);
-               return NULL;
-               }
-       
-       c = this -> header.vftbl -> class;
-       new = (java_lang_Object*) builtin_new (c);
-       if (!new) {
-               exceptionptr = proto_java_lang_OutOfMemoryError;
-               return NULL;
-               }
-
-           memcpy (new, this, c->instancesize);
-           return new;
-         }
-       return 0;
-}
-#endif
 JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_VMObject_clone ( JNIEnv *env ,  jclass clazz, struct java_lang_Cloneable* this)
 {
 /*     log_text("Java_java_lang_VMObject_clone called");
index c734a50f830d84f31d99061da7bc875a408ae9b1..46317bd1ef0ccdb753a638684496de012ca9c0f3 100644 (file)
@@ -19,15 +19,6 @@ JNIEXPORT struct java_lang_ClassLoader* JNICALL Java_java_lang_VMSecurityManager
  * Method:    getClassContext
  * Signature: ()[Ljava/lang/Class;
  */
-/* XXX delete */
-#if 0
-JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMSecurityManager_getClassContext ( JNIEnv *env ,jclass clazz)
-{
-  log_text("Java_java_lang_VMSecurityManager_getClassContext  called");
-#warning return something more usefull here
-  return builtin_anewarray(0, class_java_lang_Class);
-}
-#endif
 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMSecurityManager_getClassContext ( JNIEnv *env ,jclass clazz)
 {
   log_text("Java_java_lang_VMSecurityManager_getClassContext  called");
index e4f34cf4bb9e04483c07496310d7ec3765ad492d..dc63523d0c8ba775cb2955c80450ada008b81ccc 100644 (file)
@@ -20,194 +20,6 @@ JNIEXPORT s8 JNICALL Java_java_lang_VMSystem_currentTimeMillis ( JNIEnv *env )
  * Method:    arraycopy
  * Signature: (Ljava/lang/Object;ILjava/lang/Object;II)V
  */
-/* XXX delete */
-#if 0
-JNIEXPORT void JNICALL Java_java_lang_VMSystem_arraycopy (JNIEnv *env, jclass clazz,struct java_lang_Object* source, s4 sp, struct java_lang_Object* dest, s4 dp, s4 len)
-{
-       s4 i;
-       java_arrayheader *s = (java_arrayheader*) source;
-       java_arrayheader *d = (java_arrayheader*) dest;
-
-       printf("arraycopy: %p:%x->%p:%x||len=%d\n",source,sp,dest,dp,len);
-       fflush(stdout);
-
-
-       if (((s == NULL) || (d == NULL)) != 0) { 
-               exceptionptr = proto_java_lang_NullPointerException; 
-               return; 
-               }
-       log_text("Passed nullpointer check");
-       if (s->objheader.vftbl->class != class_array) {
-               exceptionptr = proto_java_lang_ArrayStoreException; 
-               return; 
-               }
-
-       log_text("Passed array storeexception");
-       if (((sp<0) | (sp+len > s->size) | (dp<0) | (dp+len > d->size)) != 0) {
-               exceptionptr = proto_java_lang_ArrayIndexOutOfBoundsException; 
-               return; 
-               }
-
-       log_text("Passed array out of bounds exception");
-       printf("ARRAY TYPE: %d\n",s->arraytype);
-
-       switch (s->arraytype) {
-       case ARRAYTYPE_BYTE:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_bytearray*) d)->data + dp,
-                       ((java_bytearray*) s)->data + sp,
-                       (size_t) len);
-               return;
-       case ARRAYTYPE_BOOLEAN:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_booleanarray*) d)->data + dp,
-                       ((java_booleanarray*) s)->data + sp,
-                       (size_t) len);
-               return;
-       case ARRAYTYPE_CHAR:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-       printf("CHARARRAY:");
-       if (len>0) {
-               utf_display(utf_new_u2(((java_chararray*)d)->data+sp,len*sizeof(u2), 0));
-       }
-       printf("\n");
-
-               memmove(((java_chararray*) d)->data + dp,
-                       ((java_chararray*) s)->data + sp,
-                       (size_t) len * sizeof(u2));
-               return;
-       case ARRAYTYPE_SHORT:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_shortarray*) d)->data + dp,
-                       ((java_shortarray*) s)->data + sp,
-                       (size_t) len * sizeof(s2));
-               return;
-       case ARRAYTYPE_INT:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_intarray*) d)->data + dp,
-                       ((java_intarray*) s)->data + sp,
-                       (size_t) len * sizeof(s4));
-               return;
-       case ARRAYTYPE_LONG:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_longarray*) d)->data + dp,
-                       ((java_longarray*) s)->data + sp,
-                       (size_t) len * sizeof(s8));
-               return;
-       case ARRAYTYPE_FLOAT:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_floatarray*) d)->data + dp,
-                       ((java_floatarray*) s)->data + sp,
-                       (size_t) len * sizeof(float));
-               return;
-       case ARRAYTYPE_DOUBLE:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_doublearray*) d)->data + dp,
-                       ((java_doublearray*) s)->data + sp,
-                       (size_t) len * sizeof(double));
-               return;
-       case ARRAYTYPE_OBJECT:
-               {
-               java_objectarray *oas = (java_objectarray*) s;
-               java_objectarray *oad = (java_objectarray*) d;
-
-               if (d->objheader.vftbl->class != class_array) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               if (s->arraytype != d->arraytype) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-
-               if (dp<=sp) 
-                       for (i=0; i<len; i++) {
-                               java_objectheader *o = oas->data[sp+i];
-                               if (!builtin_canstore(oad, o)) {
-                                       exceptionptr = proto_java_lang_ArrayStoreException;
-                                       return;
-                                       }
-                               oad->data[dp+i] = o;
-                               }
-               else 
-                       for (i=len-1; i>=0; i--) {
-                               java_objectheader *o = oas->data[sp+i];
-                               if (!builtin_canstore(oad, o)) {
-                                       exceptionptr = proto_java_lang_ArrayStoreException;
-                                       return;
-                                       }
-                               oad->data[dp+i] = o;
-                               }
-               
-               }
-               break;
-       case ARRAYTYPE_ARRAY:
-               {
-               java_arrayarray *aas = (java_arrayarray*) s;
-               java_arrayarray *aad = (java_arrayarray*) d;
-
-               if (d->objheader.vftbl->class != class_array) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               if (s->arraytype != d->arraytype) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-
-               if (dp<=sp) 
-                       for (i=0; i<len; i++) {
-                               java_arrayheader *o = aas->data[sp+i];
-                               if (!builtin_canstore( (java_objectarray*)aad, 
-                                       (java_objectheader*)o )) {
-                                       exceptionptr = proto_java_lang_ArrayStoreException;
-                                       return;
-                                       }
-                               aad->data[dp+i] = o;
-                               }
-               else
-                       for (i=len-1; i>=0; i--) {
-                               java_arrayheader *o = aas->data[sp+i];
-                               if (!builtin_canstore( (java_objectarray*)aad, 
-                                       (java_objectheader*)o )) {
-                                       exceptionptr = proto_java_lang_ArrayStoreException;
-                                       return;
-                                       }
-                               aad->data[dp+i] = o;
-                               }
-
-               }
-               break;
-
-       default:
-               panic ("Unknown data type for arraycopy");
-       }
-}
-#endif
 JNIEXPORT void JNICALL Java_java_lang_VMSystem_arraycopy (JNIEnv *env, jclass clazz,struct java_lang_Object* source, s4 sp, struct java_lang_Object* dest, s4 dp, s4 len)
 {
        s4 i;
index 7730cd67b5667f9dd8cb73a08778a9651c26da5a..cdb6a47a374aa2f5999412347e1de5c3272e798d 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: ?
 
-   $Id: jni.c 664 2003-11-21 18:24:01Z jowenn $
+   $Id: jni.c 669 2003-11-23 14:04:20Z edwin $
 
 */
 
@@ -140,7 +140,7 @@ void fill_callblock(void *obj,utf *descr,jni_callblock blk[], va_list data, char
                            break;                      
                         }
              case '[' : {
-                         /* XXX */
+                         /* XXX need arrayclass change? */
                            /* arrayclass */
                                    char *start = *utf_ptr;
                            char ch;
index fec51d946a93e4ac132cc14cab7b9fbe8e3d6b7d..aeb7bb7987864e8c714d4194d15cb5e2923c04d2 100644 (file)
@@ -242,37 +242,6 @@ JNIEXPORT struct java_lang_ClassLoader* JNICALL Java_java_lang_VMClass_getClassL
  * Method:    getModifiers
  * Signature: ()I
  */
-/* XXX delete */
-#if 0
-JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_getComponentType (JNIEnv *env ,  struct java_lang_VMClass* this )
-{
-  classinfo *c = NULL; 
-
-  if ((classinfo*) (this->vmData) == class_array) {
-       java_arrayheader *a = (java_arrayheader*) (this->vmData);
-
-       /* determine componenttype */
-       switch (a->arraytype) {
-          case ARRAYTYPE_BYTE:    c = class_java_lang_Byte; break;  
-           case ARRAYTYPE_BOOLEAN: c = class_java_lang_Boolean; break;   
-          case ARRAYTYPE_CHAR:    c = class_java_lang_Character; break;   
-          case ARRAYTYPE_SHORT:   c = class_java_lang_Short; break;    
-          case ARRAYTYPE_INT:     c = class_java_lang_Integer; break;   
-          case ARRAYTYPE_LONG:    c = class_java_lang_Long; break;   
-          case ARRAYTYPE_FLOAT:   c = class_java_lang_Float; break;   
-          case ARRAYTYPE_DOUBLE:  c = class_java_lang_Double; break;   
-          case ARRAYTYPE_OBJECT:  c = ((java_objectarray*) a) -> elementtype; break;
-          case ARRAYTYPE_ARRAY:   c = (classinfo *) ((java_arrayarray*) a) -> data[0]; break;
-          default: panic("illegal arraytype");
-       }               
-
-       /* set vftbl */
-       use_class_as_object (c);
-  }
-  
-  return (java_lang_Class*) c;
-}
-#endif
 JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_getComponentType (JNIEnv *env ,  struct java_lang_VMClass* this )
 {
     classinfo *thisclass = (classinfo*) (this->vmData);
@@ -731,16 +700,6 @@ JNIEXPORT struct java_lang_Class* JNICALL Java_java_lang_VMClass_getSuperclass (
  * Method:    isArray
  * Signature: ()Z
  */
-/* XXX delete */
-#if 0
-JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isArray ( JNIEnv *env ,  struct java_lang_VMClass* this)
-{
-        classinfo *c = (classinfo*) (this->vmData);
-
-       if (c == class_array || c->name->text[0] == '[')  return true;
-       return false;
-}
-#endif
 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isArray ( JNIEnv *env ,  struct java_lang_VMClass* this)
 {
     classinfo *c = (classinfo*) (this->vmData);
index 6a02806b019cb3ccc8036a6fac1ff39892dbfbf5..9ce4f843b3d279620eb4424525b682241a54c7e7 100644 (file)
@@ -5,76 +5,6 @@
  * Method:    clone
  * Signature: ()Ljava/lang/Object;
  */
-/* XXX delete */
-#if 0
-JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_VMObject_clone ( JNIEnv *env ,  jclass clazz, struct java_lang_Cloneable* this)
-{
-/*     log_text("Java_java_lang_VMObject_clone called");
-       utf_display(((java_objectheader*)this)->vftbl->class->name);
-       log_text("starting cloning");     */
-       classinfo *c;
-       java_lang_Object *new;
-
-       if (((java_objectheader*)this)->vftbl->class == class_array)
-         {
-           static u4 multiplicator[10];
-           static int is_initialized = 0;
-
-           java_arrayheader *array = (java_arrayheader*)this;
-           u4 size;
-
-           if (!is_initialized)
-             {
-               multiplicator[ARRAYTYPE_INT] = sizeof(s4);
-               multiplicator[ARRAYTYPE_LONG] = sizeof(s8);
-               multiplicator[ARRAYTYPE_FLOAT] = sizeof(float);
-               multiplicator[ARRAYTYPE_DOUBLE] = sizeof(double);
-               multiplicator[ARRAYTYPE_BYTE] = sizeof(s1);
-               multiplicator[ARRAYTYPE_CHAR] = sizeof(u2);
-               multiplicator[ARRAYTYPE_SHORT] = sizeof(s2);
-               multiplicator[ARRAYTYPE_BOOLEAN] = sizeof(u1);
-               multiplicator[ARRAYTYPE_OBJECT] = sizeof(void*);
-               multiplicator[ARRAYTYPE_ARRAY] = sizeof(void*);
-               is_initialized = 1;
-             }
-
-           size = sizeof(java_arrayheader)
-             + array->size * multiplicator[array->arraytype];
-           if (array->arraytype == ARRAYTYPE_OBJECT /* elementtype */
-               || array->arraytype == ARRAYTYPE_ARRAY) /* elementdescriptor */
-               size += sizeof(void*);
-
-           if (array->arraytype==ARRAYTYPE_OBJECT || array->arraytype==ARRAYTYPE_OBJECT)
-               size+=sizeof(void*);
-
-           new = (java_lang_Object*)heap_allocate(size, false, NULL);
-           memcpy(new, this, size);
-
-           return new;
-         }
-       else
-         {
-            if (!class_java_lang_Cloneable)
-                  class_java_lang_Cloneable =
-                        class_new ( utf_new_char ("java/lang/Cloneable") );
-           if (! builtin_instanceof ((java_objectheader*) this, class_java_lang_Cloneable) ) {
-               exceptionptr = native_new_and_init (class_java_lang_CloneNotSupportedException);
-               return NULL;
-               }
-       
-       c = this -> header.vftbl -> class;
-       new = (java_lang_Object*) builtin_new (c);
-       if (!new) {
-               exceptionptr = proto_java_lang_OutOfMemoryError;
-               return NULL;
-               }
-
-           memcpy (new, this, c->instancesize);
-           return new;
-         }
-       return 0;
-}
-#endif
 JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_VMObject_clone ( JNIEnv *env ,  jclass clazz, struct java_lang_Cloneable* this)
 {
 /*     log_text("Java_java_lang_VMObject_clone called");
index c734a50f830d84f31d99061da7bc875a408ae9b1..46317bd1ef0ccdb753a638684496de012ca9c0f3 100644 (file)
@@ -19,15 +19,6 @@ JNIEXPORT struct java_lang_ClassLoader* JNICALL Java_java_lang_VMSecurityManager
  * Method:    getClassContext
  * Signature: ()[Ljava/lang/Class;
  */
-/* XXX delete */
-#if 0
-JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMSecurityManager_getClassContext ( JNIEnv *env ,jclass clazz)
-{
-  log_text("Java_java_lang_VMSecurityManager_getClassContext  called");
-#warning return something more usefull here
-  return builtin_anewarray(0, class_java_lang_Class);
-}
-#endif
 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMSecurityManager_getClassContext ( JNIEnv *env ,jclass clazz)
 {
   log_text("Java_java_lang_VMSecurityManager_getClassContext  called");
index e4f34cf4bb9e04483c07496310d7ec3765ad492d..dc63523d0c8ba775cb2955c80450ada008b81ccc 100644 (file)
@@ -20,194 +20,6 @@ JNIEXPORT s8 JNICALL Java_java_lang_VMSystem_currentTimeMillis ( JNIEnv *env )
  * Method:    arraycopy
  * Signature: (Ljava/lang/Object;ILjava/lang/Object;II)V
  */
-/* XXX delete */
-#if 0
-JNIEXPORT void JNICALL Java_java_lang_VMSystem_arraycopy (JNIEnv *env, jclass clazz,struct java_lang_Object* source, s4 sp, struct java_lang_Object* dest, s4 dp, s4 len)
-{
-       s4 i;
-       java_arrayheader *s = (java_arrayheader*) source;
-       java_arrayheader *d = (java_arrayheader*) dest;
-
-       printf("arraycopy: %p:%x->%p:%x||len=%d\n",source,sp,dest,dp,len);
-       fflush(stdout);
-
-
-       if (((s == NULL) || (d == NULL)) != 0) { 
-               exceptionptr = proto_java_lang_NullPointerException; 
-               return; 
-               }
-       log_text("Passed nullpointer check");
-       if (s->objheader.vftbl->class != class_array) {
-               exceptionptr = proto_java_lang_ArrayStoreException; 
-               return; 
-               }
-
-       log_text("Passed array storeexception");
-       if (((sp<0) | (sp+len > s->size) | (dp<0) | (dp+len > d->size)) != 0) {
-               exceptionptr = proto_java_lang_ArrayIndexOutOfBoundsException; 
-               return; 
-               }
-
-       log_text("Passed array out of bounds exception");
-       printf("ARRAY TYPE: %d\n",s->arraytype);
-
-       switch (s->arraytype) {
-       case ARRAYTYPE_BYTE:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_bytearray*) d)->data + dp,
-                       ((java_bytearray*) s)->data + sp,
-                       (size_t) len);
-               return;
-       case ARRAYTYPE_BOOLEAN:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_booleanarray*) d)->data + dp,
-                       ((java_booleanarray*) s)->data + sp,
-                       (size_t) len);
-               return;
-       case ARRAYTYPE_CHAR:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-       printf("CHARARRAY:");
-       if (len>0) {
-               utf_display(utf_new_u2(((java_chararray*)d)->data+sp,len*sizeof(u2), 0));
-       }
-       printf("\n");
-
-               memmove(((java_chararray*) d)->data + dp,
-                       ((java_chararray*) s)->data + sp,
-                       (size_t) len * sizeof(u2));
-               return;
-       case ARRAYTYPE_SHORT:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_shortarray*) d)->data + dp,
-                       ((java_shortarray*) s)->data + sp,
-                       (size_t) len * sizeof(s2));
-               return;
-       case ARRAYTYPE_INT:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_intarray*) d)->data + dp,
-                       ((java_intarray*) s)->data + sp,
-                       (size_t) len * sizeof(s4));
-               return;
-       case ARRAYTYPE_LONG:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_longarray*) d)->data + dp,
-                       ((java_longarray*) s)->data + sp,
-                       (size_t) len * sizeof(s8));
-               return;
-       case ARRAYTYPE_FLOAT:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_floatarray*) d)->data + dp,
-                       ((java_floatarray*) s)->data + sp,
-                       (size_t) len * sizeof(float));
-               return;
-       case ARRAYTYPE_DOUBLE:
-               if (s->objheader.vftbl != d->objheader.vftbl) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               memmove(((java_doublearray*) d)->data + dp,
-                       ((java_doublearray*) s)->data + sp,
-                       (size_t) len * sizeof(double));
-               return;
-       case ARRAYTYPE_OBJECT:
-               {
-               java_objectarray *oas = (java_objectarray*) s;
-               java_objectarray *oad = (java_objectarray*) d;
-
-               if (d->objheader.vftbl->class != class_array) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               if (s->arraytype != d->arraytype) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-
-               if (dp<=sp) 
-                       for (i=0; i<len; i++) {
-                               java_objectheader *o = oas->data[sp+i];
-                               if (!builtin_canstore(oad, o)) {
-                                       exceptionptr = proto_java_lang_ArrayStoreException;
-                                       return;
-                                       }
-                               oad->data[dp+i] = o;
-                               }
-               else 
-                       for (i=len-1; i>=0; i--) {
-                               java_objectheader *o = oas->data[sp+i];
-                               if (!builtin_canstore(oad, o)) {
-                                       exceptionptr = proto_java_lang_ArrayStoreException;
-                                       return;
-                                       }
-                               oad->data[dp+i] = o;
-                               }
-               
-               }
-               break;
-       case ARRAYTYPE_ARRAY:
-               {
-               java_arrayarray *aas = (java_arrayarray*) s;
-               java_arrayarray *aad = (java_arrayarray*) d;
-
-               if (d->objheader.vftbl->class != class_array) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-               if (s->arraytype != d->arraytype) {
-                       exceptionptr = proto_java_lang_ArrayStoreException; 
-                       return; 
-                       }
-
-               if (dp<=sp) 
-                       for (i=0; i<len; i++) {
-                               java_arrayheader *o = aas->data[sp+i];
-                               if (!builtin_canstore( (java_objectarray*)aad, 
-                                       (java_objectheader*)o )) {
-                                       exceptionptr = proto_java_lang_ArrayStoreException;
-                                       return;
-                                       }
-                               aad->data[dp+i] = o;
-                               }
-               else
-                       for (i=len-1; i>=0; i--) {
-                               java_arrayheader *o = aas->data[sp+i];
-                               if (!builtin_canstore( (java_objectarray*)aad, 
-                                       (java_objectheader*)o )) {
-                                       exceptionptr = proto_java_lang_ArrayStoreException;
-                                       return;
-                                       }
-                               aad->data[dp+i] = o;
-                               }
-
-               }
-               break;
-
-       default:
-               panic ("Unknown data type for arraycopy");
-       }
-}
-#endif
 JNIEXPORT void JNICALL Java_java_lang_VMSystem_arraycopy (JNIEnv *env, jclass clazz,struct java_lang_Object* source, s4 sp, struct java_lang_Object* dest, s4 dp, s4 len)
 {
        s4 i;
index 288a6cec8e5c26b9c1bdb0838c1cfd565e6f904d..ea441550006ed52551f432dbaa95ec2bf427b511 100644 (file)
@@ -34,7 +34,7 @@
    calls instead of machine instructions, using the C calling
    convention.
 
-   $Id: builtin.c 664 2003-11-21 18:24:01Z jowenn $
+   $Id: builtin.c 669 2003-11-23 14:04:20Z edwin $
 
 */
 
@@ -235,16 +235,6 @@ s4 builtin_instanceof(java_objectheader *obj, classinfo *class)
 {
 #ifdef DEBUG
        log_text ("builtin_instanceof called");
-
-       /* XXX remove log */
-       /*
-       sprintf(logtext,"instanceof(");
-       utf_sprint(logtext+strlen(logtext),obj->vftbl->class->name);
-       sprintf(logtext+strlen(logtext),",");
-       utf_sprint(logtext+strlen(logtext),class);
-       sprintf(logtext+strlen(logtext),")");
-       dolog();
-       */
 #endif 
        if (!obj) return 0;
        return builtin_isanysubclass (obj->vftbl->class, class);
@@ -266,16 +256,6 @@ s4 builtin_checkcast(java_objectheader *obj, classinfo *class)
        log_text("builtin_checkcast called");
 #endif
 
-       /* XXX remove log */
-       /*
-       sprintf(logtext,"checkcast(");
-       utf_sprint(logtext+strlen(logtext),obj->vftbl->class->name);
-       sprintf(logtext+strlen(logtext),",");
-       utf_sprint(logtext+strlen(logtext),class);
-       sprintf(logtext+strlen(logtext),")");
-       dolog();
-       */
-       
        if (obj == NULL)
                return 1;
        if (builtin_isanysubclass(obj->vftbl->class, class))
@@ -301,24 +281,6 @@ s4 builtin_checkcast(java_objectheader *obj, classinfo *class)
                        
 ******************************************************************************/
 
-/* XXX delete */
-#if 0
-static s4 builtin_descriptorscompatible(constant_arraydescriptor *desc, constant_arraydescriptor *target)
-{
-       if (desc == target) return 1;
-       if (desc->arraytype != target->arraytype) return 0;
-
-       switch (target->arraytype) {
-       case ARRAYTYPE_OBJECT: 
-               return builtin_isanysubclass(desc->objectclass, target->objectclass);
-       case ARRAYTYPE_ARRAY:
-               return builtin_descriptorscompatible 
-                       (desc->elementdescriptor, target->elementdescriptor);
-       default: return 1;
-       }
-}
-#endif
-
 /* XXX inline this? */
 static s4 builtin_descriptorscompatible(arraydescriptor *desc,arraydescriptor *target)
 {
@@ -352,55 +314,6 @@ static s4 builtin_descriptorscompatible(arraydescriptor *desc,arraydescriptor *t
                        
 *****************************************************************************/
 
-/* XXX delete */
-#if 0
-s4 builtin_checkarraycast(java_objectheader *o, constant_arraydescriptor *desc)
-{
-       java_arrayheader *a = (java_arrayheader*) o;
-
-       if (!o) return 1;
-       if (o->vftbl->class != class_array) {
-#ifdef DEBUG
-               printf("#### checkarraycast failed 1\n");
-#endif
-               return 0;
-       }
-               
-       if (a->arraytype != desc->arraytype) {
-#ifdef DEBUG
-               printf("#### checkarraycast failed 2\n");
-#endif
-               return 0;
-       }
-       
-       switch (a->arraytype) {
-       case ARRAYTYPE_OBJECT: {
-               java_objectarray *oa = (java_objectarray*) o;
-               int result = builtin_isanysubclass(oa->elementtype, desc->objectclass);
-
-#ifdef DEBUG
-               if (!result)
-                       printf("#### checkarraycast failed 3\n");
-#endif
-               return result;
-       }
-       case ARRAYTYPE_ARRAY: {
-               java_arrayarray *aa = (java_arrayarray*) o;
-               int result = builtin_descriptorscompatible
-                       (aa->elementdescriptor, desc->elementdescriptor);
-
-#ifdef DEBUG
-               if (!result)
-                       printf("#### checkarraycast failed 4\n");
-#endif
-               return result;
-       }
-       default:   
-               return 1;
-       }
-}
-#endif
-
 s4 builtin_checkarraycast(java_objectheader *o,arraydescriptor *target)
 {
        arraydescriptor *desc;
@@ -411,15 +324,6 @@ s4 builtin_checkarraycast(java_objectheader *o,arraydescriptor *target)
        return builtin_descriptorscompatible(desc,target);
 }
 
-/* XXX delete */
-#if 0
-s4 builtin_arrayinstanceof(java_objectheader *obj, constant_arraydescriptor *desc)
-{
-       if (!obj) return 1;
-       return builtin_checkarraycast (obj, desc);
-}
-#endif
-
 s4 builtin_arrayinstanceof(java_objectheader *obj,arraydescriptor *desc)
 {
        if (!obj) return 1;
@@ -464,35 +368,6 @@ java_objectheader *builtin_throw_exception(java_objectheader *local_exceptionptr
 
 ******************************************************************************/
 
-/* XXX delete */
-#if 0
-s4 builtin_canstore(java_objectarray *a, java_objectheader *o)
-{
-       if (!o) return 1;
-       
-       switch (a->header.arraytype) {
-       case ARRAYTYPE_OBJECT:
-               if (!builtin_checkcast(o, a->elementtype)) {
-                       return 0;
-               }
-               return 1;
-               break;
-
-       case ARRAYTYPE_ARRAY:
-               if (!builtin_checkarraycast 
-                       (o, ((java_arrayarray*)a)->elementdescriptor)) {
-                       return 0;
-               }
-               return 1;
-               break;
-
-       default:
-               panic("builtin_canstore called with invalid arraytype");
-               return 0;
-       }
-}
-#endif
-
 s4 builtin_canstore (java_objectarray *a, java_objectheader *o)
 {
        arraydescriptor *desc;
@@ -515,14 +390,6 @@ s4 builtin_canstore (java_objectarray *a, java_objectheader *o)
     componentvftbl = desc->componentvftbl;
        valuevftbl = o->vftbl;
 
-       /* XXX remove log */
-       /*
-       log_text("builtin_canstore");
-       print_arraydescriptor(stdout,desc);
-       utf_sprint(logtext,valuevftbl->class->name);
-       dolog();
-       */
-
     if ((dim_m1 = desc->dimension - 1) == 0) {
                /* {a is a one-dimensional array} */
                /* {a is an array of references} */
@@ -530,9 +397,6 @@ s4 builtin_canstore (java_objectarray *a, java_objectheader *o)
                if (valuevftbl == componentvftbl)
                        return 1;
 
-               /* XXX remove log */
-               /* log_text("not same vftbl"); */
-
                if ((base = componentvftbl->baseval) <= 0)
                        /* an array of interface references */
                        return (valuevftbl->interfacetablelength > -base &&
@@ -652,18 +516,19 @@ java_objectheader *builtin_new(classinfo *c)
        return o;
 }
 
+/********************** Function: builtin_newarray **************************
+
+       Creates an array with the given vftbl on the heap.
 
+       Return value:  pointer to the array or NULL if no memory is available
 
+    CAUTION: The given vftbl must be the vftbl of the *array* class,
+    not of the element class.
+
+*****************************************************************************/
 
 java_arrayheader *builtin_newarray(s4 size,vftbl *arrayvftbl)
 {
-        /* XXX remove log */
-        /*
-        sprintf(logtext,"newarray size=%d class=",size);
-        utf_sprint(logtext+strlen(logtext),arrayvftbl->class->name);
-        dolog();
-        */
-
         java_arrayheader *a;
         arraydescriptor *desc = arrayvftbl->arraydesc;
         s4 dataoffset = desc->dataoffset;
@@ -690,149 +555,50 @@ java_arrayheader *builtin_newarray(s4 size,vftbl *arrayvftbl)
         return a;
 }
 
-java_objectarray *
-builtin_anewarray(s4 size,classinfo *component)
-{
-       return (java_objectarray*) builtin_newarray(size,class_array_of(component)->vftbl);
-}
-
-/* XXX delete */
-#if 0
-java_objectarray *builtin_anewarray (s4 size, classinfo *elementtype)
-{
-       java_objectarray *a;    
-       a = (java_objectarray*)__builtin_newarray(sizeof(java_objectarray),
-                                                                                         size, 
-                                                                                         true, 
-                                                                                         sizeof(void*), 
-                                                                                         ARRAYTYPE_OBJECT,
-                                                                                         elementtype);
-       if (!a) return NULL;
-
-       a->elementtype = elementtype;
-       return a;
-}
-#endif
+/********************** Function: builtin_anewarray *************************
 
-/******************** function: builtin_newarray_array ***********************
+       Creates an array of references to the given class type on the heap.
 
-       Creates an array of pointers to arrays on the heap.
-       Parameters:
-               size ......... number of elements
-       elementdesc .. pointer to the array description structure for the
-                                  element arrays
-       
        Return value:  pointer to the array or NULL if no memory is available
 
+    XXX This function does not do The Right Thing, because it uses a
+    classinfo pointer at runtime. builtin_newarray should be used
+    instead.
+
 *****************************************************************************/
 
-/* XXX delete */
-#if 0
-java_arrayarray *builtin_newarray_array 
-               (s4 size, constant_arraydescriptor *elementdesc)
+java_objectarray *
+builtin_anewarray(s4 size,classinfo *component)
 {
-       java_arrayarray *a; 
-       a = (java_arrayarray*)__builtin_newarray(sizeof(java_arrayarray),
-                                                                                        size, 
-                                                                                        true, 
-                                                                                        sizeof(void*), 
-                                                                                        ARRAYTYPE_ARRAY,
-                                                                                        elementdesc->objectclass);
-       if (!a) return NULL;
-
-       a->elementdescriptor = elementdesc;
-       return a;
+       return (java_objectarray*) builtin_newarray(size,class_array_of(component)->vftbl);
 }
-#endif
 
+/******************** Function: builtin_newarray_int ***********************
 
-/******************** function: builtin_newarray_boolean ************************
+       Creates an array of 32 bit Integers on the heap.
 
-       Creates an array of bytes on the heap. The array is designated as an array
-       of booleans (important for casts)
-       
        Return value:  pointer to the array or NULL if no memory is available
 
 *****************************************************************************/
 
-/* XXX delete */
-#if 0
-java_booleanarray *builtin_newarray_boolean (s4 size)
-{
-       java_booleanarray *a;   
-       a = (java_booleanarray*)__builtin_newarray(sizeof(java_booleanarray),
-                                                                                          size, 
-                                                                                          false, 
-                                                                                          sizeof(u1), 
-                                                                                          ARRAYTYPE_BOOLEAN,
-                                                                                          NULL);
-       return a;
-}
-#endif
-
 java_intarray *builtin_newarray_int (s4 size)
 {
        return (java_intarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_INT].arrayvftbl);
 }
 
-java_longarray *builtin_newarray_long (s4 size)
-{
-       return (java_longarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_LONG].arrayvftbl);
-}
-
-java_floatarray *builtin_newarray_float (s4 size)
-{
-       return (java_floatarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_FLOAT].arrayvftbl);
-}
-
-java_doublearray *builtin_newarray_double (s4 size)
-{
-       return (java_doublearray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_DOUBLE].arrayvftbl);
-}
-
-java_bytearray *builtin_newarray_byte (s4 size)
-{
-       return (java_bytearray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_BYTE].arrayvftbl);
-}
-
-java_chararray *builtin_newarray_char (s4 size)
-{
-       return (java_chararray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_CHAR].arrayvftbl);
-}
-
-java_shortarray *builtin_newarray_short (s4 size)
-{
-       return (java_shortarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_SHORT].arrayvftbl);
-}
-
-java_booleanarray *builtin_newarray_boolean (s4 size)
-{
-       return (java_booleanarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_BOOLEAN].arrayvftbl);
-}
-
-/******************** function: builtin_newarray_char ************************
+/******************** Function: builtin_newarray_long ***********************
 
-       Creates an array of characters on the heap.
+       Creates an array of 64 bit Integers on the heap.
 
        Return value:  pointer to the array or NULL if no memory is available
 
 *****************************************************************************/
 
-/* XXX delete */
-#if 0
-java_chararray *builtin_newarray_char (s4 size)
+java_longarray *builtin_newarray_long (s4 size)
 {
-       java_chararray *a;      
-       a = (java_chararray*)__builtin_newarray(sizeof(java_chararray),
-                                                                                       size, 
-                                                                                       false, 
-                                                                                       sizeof(u2), 
-                                                                                       ARRAYTYPE_CHAR,
-                                                                                       NULL);
-       return a;
+       return (java_longarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_LONG].arrayvftbl);
 }
 
-
 /******************** function: builtin_newarray_float ***********************
 
        Creates an array of 32 bit IEEE floats on the heap.
@@ -841,20 +607,11 @@ java_chararray *builtin_newarray_char (s4 size)
 
 *****************************************************************************/
 
-/* XXX delete */
 java_floatarray *builtin_newarray_float (s4 size)
 {
-       java_floatarray *a; 
-       a = (java_floatarray*)__builtin_newarray(sizeof(java_floatarray),
-                                                                                        size, 
-                                                                                        false, 
-                                                                                        sizeof(float), 
-                                                                                        ARRAYTYPE_FLOAT,
-                                                                                        NULL);
-       return a;
+       return (java_floatarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_FLOAT].arrayvftbl);
 }
 
-
 /******************** function: builtin_newarray_double ***********************
 
        Creates an array of 64 bit IEEE floats on the heap.
@@ -865,19 +622,9 @@ java_floatarray *builtin_newarray_float (s4 size)
 
 java_doublearray *builtin_newarray_double (s4 size)
 {
-       java_doublearray *a;    
-       a = (java_doublearray*)__builtin_newarray(sizeof(java_doublearray),
-                                                                                         size, 
-                                                                                         false, 
-                                                                                         sizeof(double), 
-                                                                                         ARRAYTYPE_DOUBLE,
-                                                                                         NULL);
-       return a;
+       return (java_doublearray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_DOUBLE].arrayvftbl);
 }
 
-
-
-
 /******************** function: builtin_newarray_byte ***********************
 
        Creates an array of 8 bit Integers on the heap.
@@ -886,232 +633,50 @@ java_doublearray *builtin_newarray_double (s4 size)
 
 *****************************************************************************/
 
-/* XXX delete */
 java_bytearray *builtin_newarray_byte (s4 size)
 {
-       java_bytearray *a;      
-       a = (java_bytearray*)__builtin_newarray(sizeof(java_bytearray),
-                                                                                       size, 
-                                                                                       false, 
-                                                                                       sizeof(u1), 
-                                                                                       ARRAYTYPE_BYTE,
-                                                                                       NULL);
-       return a;
+       return (java_bytearray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_BYTE].arrayvftbl);
 }
 
+/******************** function: builtin_newarray_char ************************
 
-/******************** function: builtin_newarray_short ***********************
-
-       Creates an array of 16 bit Integers on the heap.
+       Creates an array of characters on the heap.
 
        Return value:  pointer to the array or NULL if no memory is available
 
 *****************************************************************************/
 
-/* XXX delete */
-java_shortarray *builtin_newarray_short(s4 size)
+java_chararray *builtin_newarray_char (s4 size)
 {
-       java_shortarray *a; 
-       a = (java_shortarray*)__builtin_newarray(sizeof(java_shortarray),
-                                                                                        size, 
-                                                                                        false, 
-                                                                                        sizeof(s2), 
-                                                                                        ARRAYTYPE_SHORT,
-                                                                                        NULL);
-       return a;
+       return (java_chararray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_CHAR].arrayvftbl);
 }
 
+/******************** function: builtin_newarray_short ***********************
 
-/******************** Function: builtin_newarray_int ***********************
-
-       Creates an array of 32 bit Integers on the heap.
+       Creates an array of 16 bit Integers on the heap.
 
        Return value:  pointer to the array or NULL if no memory is available
 
 *****************************************************************************/
 
-<<<<<<< builtin.c
-/* XXX delete */
-java_intarray *builtin_newarray_int(s4 size)
+java_shortarray *builtin_newarray_short (s4 size)
 {
-       java_intarray *a;       
-       a = (java_intarray*)__builtin_newarray(sizeof(java_intarray),
-                                                                                  size, 
-                                                                                  false, 
-                                                                                  sizeof(s4), 
-                                                                                  ARRAYTYPE_INT,
-                                                                                  NULL);
-
-#if 0
-       if (a == NULL) {
-               asm_handle_builtin_exception(proto_java_lang_OutOfMemoryError);
-       }
-#endif
-
-       return a;
+       return (java_shortarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_SHORT].arrayvftbl);
 }
 
+/******************** function: builtin_newarray_boolean ************************
 
-/******************** Function: builtin_newarray_long ***********************
-
-       Creates an array of 64 bit Integers on the heap.
-
+       Creates an array of bytes on the heap. The array is designated as an array
+       of booleans (important for casts)
+       
        Return value:  pointer to the array or NULL if no memory is available
 
 *****************************************************************************/
 
-<<<<<<< builtin.c
-/* XXX delete */
-java_longarray *builtin_newarray_long(s4 size)
-{
-       java_longarray *a;      
-       a = (java_longarray*)__builtin_newarray(sizeof(java_longarray),
-                                                                                       size, 
-                                                                                       false, 
-                                                                                       sizeof(s8), 
-                                                                                       ARRAYTYPE_LONG,
-                                                                                       NULL);
-       return a;
-}
-
-
-/* XXX delete */
-/***************** function: builtin_multianewarray ***************************
-
-       Creates a multi-dimensional array on the heap. The dimensions are passed in
-       an array of Integers. The type for the array is passed as a reference to a
-       constant_arraydescriptor structure.
-
-       Return value:  pointer to the array or NULL if no memory is available
-
-******************************************************************************/
-
-       /* Helper functions */
-
-/* XXX delete */
-static java_arrayheader *multianewarray_part(java_intarray *dims, int thisdim,
-                                                                                        constant_arraydescriptor *desc)
-{
-       u4 size,i;
-       java_arrayarray *a;
-
-       size = dims->data[thisdim];
-       
-       if (thisdim == (dims->header.size - 1)) {
-               /* last dimension reached */
-               
-               switch (desc -> arraytype) {
-               case ARRAYTYPE_BOOLEAN:  
-                       return (java_arrayheader*) builtin_newarray_boolean(size);
-               case ARRAYTYPE_CHAR:  
-                       return (java_arrayheader*) builtin_newarray_char(size);
-               case ARRAYTYPE_FLOAT:  
-                       return (java_arrayheader*) builtin_newarray_float(size);
-               case ARRAYTYPE_DOUBLE:  
-                       return (java_arrayheader*) builtin_newarray_double(size);
-               case ARRAYTYPE_BYTE:  
-                       return (java_arrayheader*) builtin_newarray_byte(size);
-               case ARRAYTYPE_SHORT:  
-                       return (java_arrayheader*) builtin_newarray_short(size);
-               case ARRAYTYPE_INT:      
-                       return (java_arrayheader*) builtin_newarray_int(size);
-               case ARRAYTYPE_LONG:  
-                       return (java_arrayheader*) builtin_newarray_long(size);
-               case ARRAYTYPE_OBJECT:
-                       return (java_arrayheader*) builtin_anewarray(size, desc->objectclass);
-               
-               case ARRAYTYPE_ARRAY:
-                       return (java_arrayheader*) builtin_newarray_array(size, desc->elementdescriptor);
-               
-               default: panic("Invalid arraytype in multianewarray");
-               }
-       }
-
-       /* if the last dimension has not been reached yet */
-
-       if (desc->arraytype != ARRAYTYPE_ARRAY) 
-               panic("multianewarray with too many dimensions");
-
-       a = builtin_newarray_array(size, desc->elementdescriptor);
-       if (!a) return NULL;
-       
-       for (i = 0; i < size; i++) {
-               java_arrayheader *ea = 
-                       multianewarray_part(dims, thisdim + 1, desc->elementdescriptor);
-               if (!ea) return NULL;
-
-               a->data[i] = ea;
-       }
-               
-       return (java_arrayheader*) a;
-}
-
-/* XXX delete */
-java_arrayheader *builtin_multianewarray(java_intarray *dims,
-                                                                                constant_arraydescriptor *desc)
-{
-       return multianewarray_part(dims, 0, desc);
-}
-
-
-static java_arrayheader *nmultianewarray_part(int n, long *dims, int thisdim,
-                                                                                         constant_arraydescriptor *desc)
+java_booleanarray *builtin_newarray_boolean (s4 size)
 {
-       int size, i;
-       java_arrayarray *a;
-
-       size = (int) dims[thisdim];
-       
-       if (thisdim == (n - 1)) {
-               /* last dimension reached */
-               
-               switch (desc -> arraytype) {
-               case ARRAYTYPE_BOOLEAN:  
-                       return (java_arrayheader*) builtin_newarray_boolean(size); 
-               case ARRAYTYPE_CHAR:  
-                       return (java_arrayheader*) builtin_newarray_char(size); 
-               case ARRAYTYPE_FLOAT:  
-                       return (java_arrayheader*) builtin_newarray_float(size); 
-               case ARRAYTYPE_DOUBLE:  
-                       return (java_arrayheader*) builtin_newarray_double(size); 
-               case ARRAYTYPE_BYTE:  
-                       return (java_arrayheader*) builtin_newarray_byte(size); 
-               case ARRAYTYPE_SHORT:  
-                       return (java_arrayheader*) builtin_newarray_short(size); 
-               case ARRAYTYPE_INT:      
-                       return (java_arrayheader*) builtin_newarray_int(size); 
-               case ARRAYTYPE_LONG:  
-                       return (java_arrayheader*) builtin_newarray_long(size); 
-               case ARRAYTYPE_OBJECT:
-                       return (java_arrayheader*) builtin_anewarray(size,
-                                                                                                                desc->objectclass);
-               case ARRAYTYPE_ARRAY:
-                       return (java_arrayheader*) builtin_newarray_array(size,
-                                                                                                                         desc->elementdescriptor);
-               
-               default: panic ("Invalid arraytype in multianewarray");
-               }
-       }
-
-       /* if the last dimension has not been reached yet */
-
-       if (desc->arraytype != ARRAYTYPE_ARRAY) 
-               panic ("multianewarray with too many dimensions");
-
-       a = builtin_newarray_array(size, desc->elementdescriptor);
-       if (!a) return NULL;
-       
-       for (i = 0; i < size; i++) {
-               java_arrayheader *ea = 
-                       nmultianewarray_part(n, dims, thisdim + 1, desc->elementdescriptor);
-               if (!ea) return NULL;
-
-               a -> data[i] = ea;
-       }
-               
-       return (java_arrayheader*) a;
+       return (java_booleanarray*) builtin_newarray(size,primitivetype_table[ARRAYTYPE_BOOLEAN].arrayvftbl);
 }
-#endif
 
 /**************** function: builtin_nmultianewarray ***************************
 
@@ -1158,45 +723,6 @@ java_arrayheader *builtin_nmultianewarray (int n,
        return a;
 }
 
-/* XXX delete */
-#if 0
-java_arrayheader *builtin_nmultianewarray (int size,
-                                                                                  constant_arraydescriptor *desc, long *dims)
-{
-       (void) builtin_newarray_int(size); /* for compatibility with -old */
-       return nmultianewarray_part (size, dims, 0, desc);
-}
-#endif
-
-
-
-/************************* function: builtin_aastore *************************
-
-       Stores a reference to an object into an object array or into an array
-       array. Before any action is performed, the validity of the operation is
-       checked.
-
-       Return value:  1 ... ok
-                                  0 ... this object cannot be stored into this array
-
-*****************************************************************************/
-
-/* XXX delete */
-#if 0
-s4 builtin_aastore (java_objectarray *a, s4 index, java_objectheader *o)
-{
-       if (builtin_canstore(a,o)) {
-               a->data[index] = o;
-               return 1;
-       }
-       return 0;
-}
-#endif
-
-
-
-
-
 /*****************************************************************************
                                          METHOD LOGGING
 
index 6b8cee2828a3e2b403002b5ae656bb8064eaf5a8..b4422a1b812f4d802726225554edbb35267345cc 100644 (file)
@@ -29,8 +29,9 @@
 
    Changes: Mark Probst
             Philipp Tomsich
+                       Edwin Steiner
 
-   $Id: global.h 664 2003-11-21 18:24:01Z jowenn $
+   $Id: global.h 669 2003-11-23 14:04:20Z edwin $
 
 */
 
@@ -306,24 +307,6 @@ typedef struct {            /* NameAndType (Field or Method)                  */
 } constant_nameandtype;
 
 
-/* 
-   arraydescriptor describes array types. Basic array types contain their
-   type in the arraytype field, objectclass contains a class pointer for
-   arrays of objects (arraytype == ARRAYTYPE_OBJECT), elementdescriptor
-   contains a pointer to an arraydescriptor which describes the element
-   types in the case of arrays of arrays (arraytype == ARRAYTYPE_ARRAY).
-*/
-
-/* XXX delete */
-#if 0
-typedef struct constant_arraydescriptor {
-       int arraytype;
-       classinfo *objectclass;
-       struct constant_arraydescriptor *elementdescriptor;
-} constant_arraydescriptor;
-#endif
-
-
 /* data structures of the runtime system **************************************/
 
 /* objects *********************************************************************
@@ -340,10 +323,10 @@ struct java_objectheader {              /* header for all objects             */
 
 /* arrays **********************************************************************
 
-       All arrays are objects (they need the object header with a pointer to a
-       vvftbl (array class table). There is only one class for all arrays. The    XXX change
-       type of an array is stored directly in the array object. Following types
-       are defined:
+       All arrays are objects (they need the object header with a pointer
+       to a vftbl (array class table). There is one class for each array
+       type. The array type is described by an arraydescriptor struct
+       which is referenced by the vftbl.
 */
 
 /* CAUTION: Don't change the numerical values! These constants (with
@@ -423,15 +406,6 @@ typedef struct java_objectarray {
        java_objectheader *data[1];
 } java_objectarray;
 
-/* XXX delete */
-#if 0
-typedef struct java_arrayarray {
-       java_arrayheader header;
-       constant_arraydescriptor *elementdescriptor;
-       java_arrayheader *data[1];
-} java_arrayarray;
-#endif
-
 /* structure for primitive classes ********************************************/
 
 typedef struct primitivetypeinfo {
index 99da6bdd9cf6b1c3190949b23c6bff159faed417..15874fb0987ec181acb33f6d4566845bcd4b056c 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes: Carolyn Oates
 
-   $Id: parse.c 665 2003-11-21 18:36:43Z jowenn $
+   $Id: parse.c 669 2003-11-23 14:04:20Z edwin $
 
 */
 
@@ -650,9 +650,6 @@ void parse()
                nextp = p + jcommandsize[opcode];   /* compute next instruction start */
                s_count += stackreq[opcode];            /* compute stack element count    */
 
-               /* XXX remove log */
-               /*              log_text(opcode_names[opcode]); */
-               
                switch (opcode) {
                case JAVA_NOP:
                        break;
index cc6a5c5db89c5a5c00681ad375f312d66c00fc23..5aa27905b11c12db36515f62558e1f32a22f0093 100644 (file)
@@ -29,7 +29,7 @@
             Roman Obermaiser
             Mark Probst
 
-   $Id: loader.c 664 2003-11-21 18:24:01Z jowenn $
+   $Id: loader.c 669 2003-11-23 14:04:20Z edwin $
 
 */
 
@@ -172,50 +172,6 @@ java_objectheader *proto_java_lang_ArithmeticException;
 java_objectheader *proto_java_lang_ArrayStoreException;
 java_objectheader *proto_java_lang_ThreadDeath;
 
-/* XXX delete */
-#if 0
-void override_array_class(classinfo *c) {
-       int i;
-       classinfo *sup;
-       utf *u=utf_new_char("clone");
-       sup=c->super;
-       class_showmethods(c);
-
-       for (i=0;i<sup->methodscount;i++) {
-               if (sup->methods[i].name==u) {
-                       method_clone_array.class = c;
-                       method_clone_array. flags = ACC_PUBLIC;
-                       method_clone_array.name =  utf_new_char("clone");
-                       method_clone_array.descriptor = utf_new_char("()Ljava/lang/Object;");
-
-                       method_clone_array.jcode = NULL;
-                       method_clone_array.exceptiontable = NULL;
-                       method_clone_array.entrypoint = NULL;
-                       method_clone_array.mcode = NULL;
-                       method_clone_array.stubroutine = NULL;
-                       method_clone_array.methodUsed = NOTUSED;
-                       method_clone_array.monoPoly = MONO;
-                       method_clone_array.subRedefs = 0;
-                       method_clone_array.subRedefsUsed = 0;
-                       method_clone_array.flags=0;
-                       method_clone_array.xta = NULL;
-                        method_clone_array.stubroutine = createnativestub (&builtin_clone_array, &method_clone_array);
-                       c->vftbl->table[sup->methods[i].vftblindex]=method_clone_array.stubroutine;
-                       log_text("Found !!!! :)))))))))))))))))))))))))))))))))))))))))))))))))");
-               }
-       
-
-       }
-}
-#endif
-
-
-
-
-
-
-
-
 
 /************* functions for reading classdata *********************************
 
@@ -442,12 +398,6 @@ bool suck_start (utf *classname) {
                        classfile = fopen(filename, "r");
                        if (classfile) {                                       /* file exists */
 
-                               /* XXX remove */
-                               /*
-                                 sprintf(logtext,"Opening file: %s",filename);
-                                 dolog();
-                               */
-                       
                                /* determine size of classfile */
 
                                err = stat (filename, &buffer);
@@ -656,7 +606,7 @@ static void checkfielddescriptor (char *utf_ptr, char *end_pos)
 {
        char *tstart;  /* pointer to start of classname */
        char ch;
-       char *start = utf_ptr; /* XXX remove */
+       char *start = utf_ptr;
 
        switch (*utf_ptr++) {
          case 'B':
@@ -698,7 +648,7 @@ static void checkmethoddescriptor (utf *d)
        char *end_pos = utf_end(d);  /* points behind utf string       */
        char *tstart;                /* pointer to start of classname  */
        char c,ch;
-       char *start; /* XXX remove */
+       char *start;
 
        /* method descriptor must start with parenthesis */
        /* XXX check length */
@@ -707,7 +657,7 @@ static void checkmethoddescriptor (utf *d)
        /* XXX check length */
        /* check arguments */
        while ((c = *utf_ptr++) != ')') {
-               start = utf_ptr-1; /* XXX remove */
+               start = utf_ptr-1;
                
                switch (c) {
                case 'B':
@@ -742,99 +692,6 @@ static void checkmethoddescriptor (utf *d)
                checkfielddescriptor (utf_ptr,end_pos);
 }
 
-
-/******************** Function: buildarraydescriptor ***************************
-
-       creates a constant_arraydescriptor structure for the array type named by an
-       utf string
-       
-*******************************************************************************/
-
-/* XXX delete */
-#if 0
-constant_arraydescriptor * buildarraydescriptor(char *utf_ptr, u4 namelen)
-{
-       constant_arraydescriptor *d;
-
-       /* class_new( utf_new(utf_ptr,namelen) ); */ /* XXX remove */
-       
-       if (*utf_ptr++ != '[') panic ("Attempt to build arraydescriptor for non-array");
-
-       d = NEW (constant_arraydescriptor);
-       d -> objectclass = NULL;
-       d -> elementdescriptor = NULL;
-
-#ifdef STATISTICS
-       count_const_pool_len += sizeof(constant_arraydescriptor);
-#endif
-
-       switch (*utf_ptr) {
-       case 'Z': d -> arraytype = ARRAYTYPE_BOOLEAN; break;
-       case 'B': d -> arraytype = ARRAYTYPE_BYTE; break;
-       case 'C': d -> arraytype = ARRAYTYPE_CHAR; break;
-       case 'D': d -> arraytype = ARRAYTYPE_DOUBLE; break;
-       case 'F': d -> arraytype = ARRAYTYPE_FLOAT; break;
-       case 'I': d -> arraytype = ARRAYTYPE_INT; break;
-       case 'J': d -> arraytype = ARRAYTYPE_LONG; break;
-       case 'S': d -> arraytype = ARRAYTYPE_SHORT; break;
-
-       case '[':
-               d -> arraytype = ARRAYTYPE_ARRAY; 
-               d -> elementdescriptor = buildarraydescriptor (utf_ptr, namelen-1);
-               break;
-               
-       case 'L':
-               d -> arraytype = ARRAYTYPE_OBJECT;
-
-               d -> objectclass = class_new ( utf_new(utf_ptr+1, namelen-3) );
-                d -> objectclass  -> classUsed = NOTUSED; /* not used initially CO-RT */
-               d -> objectclass  -> impldBy = NULL;
-               break;
-       }
-       return d;
-}
-#endif
-
-
-/******************* Function: freearraydescriptor *****************************
-
-       removes a structure created by buildarraydescriptor from memory
-       
-*******************************************************************************/
-
-/* XXX delete */
-#if 0
-static void freearraydescriptor (constant_arraydescriptor *d)
-{
-       while (d) {
-               constant_arraydescriptor *n = d->elementdescriptor;
-               FREE (d, constant_arraydescriptor);
-               d = n;
-               }
-}
-#endif
-
-/*********************** Function: displayarraydescriptor *********************/
-
-/* XXX delete */
-#if 0
-static void displayarraydescriptor (constant_arraydescriptor *d)
-{
-       switch (d->arraytype) {
-       case ARRAYTYPE_BOOLEAN: printf ("boolean[]"); break;
-       case ARRAYTYPE_BYTE: printf ("byte[]"); break;
-       case ARRAYTYPE_CHAR: printf ("char[]"); break;
-       case ARRAYTYPE_DOUBLE: printf ("double[]"); break;
-       case ARRAYTYPE_FLOAT: printf ("float[]"); break;
-       case ARRAYTYPE_INT: printf ("int[]"); break;
-       case ARRAYTYPE_LONG: printf ("long[]"); break;
-       case ARRAYTYPE_SHORT: printf ("short[]"); break;
-       case ARRAYTYPE_ARRAY: displayarraydescriptor(d->elementdescriptor); printf("[]"); break;
-       case ARRAYTYPE_OBJECT: utf_display(d->objectclass->name); printf("[]"); break;
-       }
-}
-#endif
-
 /***************** Function: print_arraydescriptor ****************************
 
        Debugging helper for displaying an arraydescriptor
@@ -1554,9 +1411,6 @@ static int class_load (classinfo *c)
        count_class_loads++;
 #endif
 
-       /* XXX remove */
-       /*      loadverbose = 1; */
-       
        /* output for debugging purposes */
        if (loadverbose) {              
 
@@ -1745,13 +1599,6 @@ class_new_array(classinfo *c)
        methodinfo *clone;
        int namelen;
 
-       /* XXX remove logging */
-       /*
-       sprintf(logtext,"new array class: ");
-       utf_sprint(logtext+strlen(logtext),c->name);
-       dolog();
-       */
-       
        /* Array classes are not loaded from classfiles. */
        list_remove (&unloadedclasses, c);
 
@@ -1768,15 +1615,6 @@ class_new_array(classinfo *c)
                  break;
 
          case 'L':
-                 /* XXX remove logging */
-                 /*
-                 sprintf(logtext,"Component class: ");
-                 utf_sprint(logtext+strlen(logtext),utf_new(c->name->text + 2,namelen - 3));
-                 dolog();
-                 if (class_get(utf_new(c->name->text + 2,namelen - 3)))
-                         log_text("Already created.");
-                 */
-                 
                  /* c is an array of objects. */
                  if (namelen < 4 || c->name->text[namelen-1] != ';')
                          panic("Invalid array class name.");
@@ -1836,15 +1674,6 @@ class_link_array(classinfo *c)
        arraydescriptor *desc;
        vftbl *compvftbl;
 
-       /* XXX remove logging */
-
-       /*
-         sprintf(logtext,"linking array class: ");
-         utf_sprint(logtext+strlen(logtext),c->name);
-         dolog();
-       */
-       
-       
        /* Check the component type */
        switch (c->name->text[1]) {
          case '[':
@@ -1923,12 +1752,6 @@ class_link_array(classinfo *c)
                desc->dimension = 1;
        }
 
-       /* XXX remove logging */
-       /*
-         print_arraydescriptor(stdout,desc); 
-         printf("\n");
-       */
-
        return desc;
 }
 
@@ -1960,13 +1783,6 @@ void class_link(classinfo *c)
        arraydescriptor *arraydesc = NULL;  /* descriptor for array classes       */
 
 
-       /* XXX remove log */
-       /*
-         sprintf(logtext,"trying to link: ");
-         utf_sprint(logtext+strlen(logtext),c->name);
-         dolog();
-       */
-       
        /*  check if all superclasses are already linked, if not put c at end of
            unlinked list and return. Additionally initialize class fields.       */
 
@@ -3060,27 +2876,6 @@ classinfo *class_from_descriptor(char *utf_ptr,char *end_ptr,char **next,int mod
        }
 }
 
-/***************** function: create_array_class ********************************
-
-       create class representing an array
-
-********************************************************************************/
-
-/* XXX delete */
-#if 0
-classinfo *create_array_class(utf *u)
-{  
-       classinfo *c = class_new (u);
-       /* prevent loader from loading the array class */
-       list_remove (&unloadedclasses, c);
-       /* add to unlinked classes */
-       list_addlast (&unlinkedclasses, c);
-       c -> super = class_java_lang_Object;
-       class_link(c);
-       return c;
-}
-#endif
-
 /*************** function: create_pseudo_classes *******************************
 
        create pseudo classes used by the typechecker
index 1e249fcd02516adb6f59beb42f9e675fd31c195f..35cd9bafc6125e0194689fe3429d2deb3b6fb6c9 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Reinhard Grafl
 
-   $Id: loader.h 664 2003-11-21 18:24:01Z jowenn $
+   $Id: loader.h 669 2003-11-23 14:04:20Z edwin $
 */
 
 
@@ -108,9 +108,6 @@ classinfo *class_primitive_from_sig(char sig);
 #define CLASSLOAD_LOAD  2
 classinfo *class_from_descriptor(char *utf_ptr,char *end_ptr,char **next,int mode);
 
-/* create class representing specific arraytype */ /* XXX delete */
-classinfo *create_array_class(utf *u);
-
 /* (used by class_new, don't use directly) */
 void class_new_array(classinfo *c);
 
index 6bd10a922d8618ba1d12ce26c775496e12c97556..bc8edb4d75d3a805f54fcf513d07e09b3c77aac1 100644 (file)
@@ -8,7 +8,7 @@ EXTRA_DIST = x.java x.output \
 
 check_DATA = checkall
 
-checkall: x.tst jctest.tst fp.tst fptest.tst GCBench.tstrun
+checkall: x.tst jctest.tst fp.tst fptest.tst TestArrayClasses.tst GCBench.tstrun
 
 %.tst:
        ../cacao sun.tools.javac.Main $*.java
index c748abda547be434219deacf5fb68b4cefa1a48a..9a8dda3d64a07ec80df2605e7e6ffbe5d3f4fbf3 100644 (file)
@@ -57,8 +57,8 @@ void dolog()
                fflush (logfile);
                }
        else {
-               printf ("LOG: %s\n",logtext);
-               fflush (stdout);
+               fprintf (stderr,"LOG: %s\n",logtext);
+               fflush (stderr);
                }
 }