Index: include/runtimeint.h =================================================================== RCS file: /cvsroot/hungry/java/japhar/include/runtimeint.h,v retrieving revision 1.5 diff -u -r1.5 runtimeint.h --- runtimeint.h 2000/06/19 10:14:46 1.5 +++ runtimeint.h 2000/07/10 04:04:44 @@ -195,10 +195,11 @@ void *native_state; ClazzFile *clazz; - - char fields; /* isn't really a char -- we use a pointer to this to - actually get at the fields. */ }; + +/* #ifdef __sparc__ */ +#define JAPHAR_OBJSIZE_NOFIELDS ((sizeof(struct japhar_object) + 7) & ~7) +/* #endif */ /************************************************************************/ Index: lib/libruntime/arrays.c =================================================================== RCS file: /cvsroot/hungry/java/japhar/lib/libruntime/arrays.c,v retrieving revision 1.45 diff -u -r1.45 arrays.c --- arrays.c 2000/01/02 03:05:01 1.45 +++ arrays.c 2000/07/10 04:04:52 @@ -275,7 +275,8 @@ field = arrayref->clazz->fields [ ARRAY_LENGTH_INDEX ]; - return *(PRUint32*)((char*)&arrayref->fields + field->field_offset); + return *(PRUint32*)((char*)arrayref + JAPHAR_OBJSIZE_NOFIELDS + + field->field_offset); } PR_IMPLEMENT(void*) @@ -285,5 +286,6 @@ field = arrayref->clazz->fields [ ARRAY_BODY_INDEX ]; - return *(void**)((char*)&arrayref->fields + field->field_offset); + return *(void**)((char*)arrayref + JAPHAR_OBJSIZE_NOFIELDS + + field->field_offset); } Index: lib/libruntime/field.c =================================================================== RCS file: /cvsroot/hungry/java/japhar/lib/libruntime/field.c,v retrieving revision 1.13 diff -u -r1.13 field.c --- field.c 1999/10/25 07:10:41 1.13 +++ field.c 2000/07/10 04:04:52 @@ -189,7 +189,7 @@ FieldStruct *field, InterpValue value) { - char *instance_data = &obj->fields; + char *instance_data = (char *)obj + JAPHAR_OBJSIZE_NOFIELDS; PR_ASSERT((field->access_flags & ACC_STATIC) == 0); @@ -201,7 +201,7 @@ FieldStruct *field, InterpValue *value) { - char *instance_data = &obj->fields; + char *instance_data = (char *)obj + JAPHAR_OBJSIZE_NOFIELDS; PR_ASSERT((field->access_flags & ACC_STATIC) == 0); Index: lib/libruntime/objects.c =================================================================== RCS file: /cvsroot/hungry/java/japhar/lib/libruntime/objects.c,v retrieving revision 1.95 diff -u -r1.95 objects.c --- objects.c 2000/06/26 02:20:05 1.95 +++ objects.c 2000/07/10 04:04:53 @@ -153,7 +153,7 @@ static PRSize object_size_without_fields() { - return (int) &((japhar_object*)NULL)->fields; + return JAPHAR_OBJSIZE_NOFIELDS; } PR_IMPLEMENT(japhar_object*)