X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=ffi%2Fnative.c;h=45964b77f701a067273b3cb945e8b4d9d402e885;hb=d52e9acb9411a9d8386ec95aa9952edb950c65b2;hp=57a688e3e60c0dc28e5197298e1302b09ffa86a0;hpb=54cd74d726b0e145c9c8880185f6dda92412381b;p=mate.git diff --git a/ffi/native.c b/ffi/native.c index 57a688e..45964b7 100644 --- a/ffi/native.c +++ b/ffi/native.c @@ -48,26 +48,28 @@ void java_io_PrintStream__printf___I_V(int a) struct integer { unsigned int method_table_ptr; + unsigned int gc_data; int value; }; struct string { unsigned int method_table_ptr; + unsigned int gc_data; struct chararray *value; }; struct chararray { unsigned int length; - char *str; + char str; }; -void java_io_PrintStream__printf_0___Ljava_lang_String__V +void jmate_io_PrintStream__printf_0___Ljava_lang_String__V (struct string *fmt) { printf("%s", &fmt->value->str); } -void java_io_PrintStream__printf_1___Ljava_lang_String_Ljava_lang_Object__V +void jmate_io_PrintStream__printf_1___Ljava_lang_String_Ljava_lang_Object__V (struct integer *a1, struct string *fmt) { #if 0 @@ -80,26 +82,26 @@ void java_io_PrintStream__printf_1___Ljava_lang_String_Ljava_lang_Object__V printf(&fmt->value->str, a1->value); } -void java_io_PrintStream__printf_2___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object__V +void jmate_io_PrintStream__printf_2___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object__V (struct integer *a2, struct integer *a1, struct string *fmt) { printf(&fmt->value->str, a1->value, a2->value); } void -java_io_PrintStream__printf_3___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V +jmate_io_PrintStream__printf_3___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V (struct integer *a3, struct integer *a2, struct integer *a1, struct string *fmt) { printf(&fmt->value->str, a1->value, a2->value, a3->value); } -void java_io_PrintStream__printf_4___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V +void jmate_io_PrintStream__printf_4___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V (struct integer *a4, struct integer *a3, struct integer *a2, struct integer *a1, struct string *fmt) { printf(&fmt->value->str, a1->value, a2->value, a3->value, a4->value); } -void java_io_PrintStream__printf_5___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V +void jmate_io_PrintStream__printf_5___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V (struct integer *a5, struct integer *a4, struct integer *a3, struct integer *a2, struct integer *a1, struct string *fmt) { printf(&fmt->value->str, a1->value, a2->value, a3->value, a4->value, a5->value); @@ -118,8 +120,7 @@ void java_lang_VMSystem__arraycopy___Ljava_lang_Object_ILjava_lang_Object_II_V( struct chararray *dest, int dest_start, int len) #endif { - /* TODO(bernhard): clean please... */ - memcpy(((char *) dest) + 4, ((char *) src) + 4 + src_start, len); + memcpy(&dest->str, &src->str + src_start, len); dest->length = len; #if 0 hexdump(src, len + 4);