PatchSet 5748 
Date: 2005/01/03 06:44:03
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Split arraycopy into a java part for error checking and a native part for real 
work

2005-01-03  Dalibor Topic  <[EMAIL PROTECTED]>

        * libraries/javalib/java/lang/System.java (arraycopy): Moved error
        checking code from native part of the method into java part of
        method's implementation. Improved exception messages.
        (arraycopy0) Renamed native part of the method accordingly.

        * test/internal/java/lang/System.java: Updated for new arraycopy
        implementation.

        * libraries/clib/native/System.c (java_lang_System_arraycopy):
        Renamed to java_lang_System_arraycopy0.

        * libraries/javalib/Klasses.jar.bootstrap: Regenerated.

Members: 
        ChangeLog:1.3292->1.3293 
        libraries/clib/native/System.c:1.63->1.64 
        libraries/javalib/Klasses.jar.bootstrap:1.80->1.81 
        libraries/javalib/java/lang/System.java:1.43->1.44 
        test/internal/java/lang/System.java:1.1->1.2 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3292 kaffe/ChangeLog:1.3293
--- kaffe/ChangeLog:1.3292      Sun Jan  2 19:03:30 2005
+++ kaffe/ChangeLog     Mon Jan  3 06:44:03 2005
@@ -1,3 +1,18 @@
+2005-01-03  Dalibor Topic  <[EMAIL PROTECTED]>
+
+       * libraries/javalib/java/lang/System.java (arraycopy): Moved error
+       checking code from native part of the method into java part of 
+       method's implementation. Improved exception messages.
+       (arraycopy0) Renamed native part of the method accordingly.
+
+       * test/internal/java/lang/System.java: Updated for new arraycopy
+       implementation.
+
+       * libraries/clib/native/System.c (java_lang_System_arraycopy):
+       Renamed to java_lang_System_arraycopy0.
+
+       * libraries/javalib/Klasses.jar.bootstrap: Regenerated.
+       
 2005-01-02  Guilhem Lavaux  <[EMAIL PROTECTED]>
 
        * kaffe/kaffevm/systems/unix-pthreads/lock-impl.c
Index: kaffe/libraries/clib/native/System.c
diff -u kaffe/libraries/clib/native/System.c:1.63 
kaffe/libraries/clib/native/System.c:1.64
--- kaffe/libraries/clib/native/System.c:1.63   Tue Dec 21 05:49:58 2004
+++ kaffe/libraries/clib/native/System.c        Mon Jan  3 06:44:06 2005
@@ -153,7 +153,7 @@
 }
 
 void
-java_lang_System_arraycopy(struct Hjava_lang_Object* src, jint srcpos,
+java_lang_System_arraycopy0(struct Hjava_lang_Object* src, jint srcpos,
                           struct Hjava_lang_Object* dst, jint dstpos,
                           jint len) {
        char* in;        
@@ -162,50 +162,8 @@
        Hjava_lang_Class* sclass;        
        Hjava_lang_Class* dclass;
 
-       if (src==0 || dst==0) {
-               throwException (NullPointerException);
-       }
-
-       if (len == 0) {          
-               return;          
-       }        
-
        sclass = OBJECT_CLASS(src);      
        dclass = OBJECT_CLASS(dst);
-
-       /* Must be arrays */     
-       if (!CLASS_IS_ARRAY(sclass)) {
-               Hjava_lang_Throwable* asexc;
-               const char *type = CLASS_CNAME(sclass);
-               char *b;
-#define _FORMAT "source not an array `%s'"
-               b = checkPtr(KMALLOC(strlen(type)+strlen(_FORMAT)));
-               sprintf(b, _FORMAT, type);
-#undef _FORMAT
-               asexc = ArrayStoreException(b);
-               KFREE(b);
-               throwException(asexc);
-       }
-
-       if(!CLASS_IS_ARRAY(dclass)) {    
-               Hjava_lang_Throwable* asexc;
-               const char *type = CLASS_CNAME(dclass);
-               char *b;
-#define _FORMAT "destination not an array `%s'"
-               b = checkPtr(KMALLOC(strlen(type)+strlen(_FORMAT)));
-               sprintf(b, _FORMAT, type);
-#undef _FORMAT
-               asexc = ArrayStoreException(b);
-               KFREE(b);
-               throwException(asexc);
-       }        
-
-       /* Make sure we'll keep in the array boundaries */       
-       if ((srcpos < 0 || srcpos + len > ARRAY_SIZE(src)) ||    
-           (dstpos < 0 || dstpos + len > ARRAY_SIZE(dst)) ||    
-           (len < 0)) {         
-               throwException (ArrayIndexOutOfBoundsException);
-       }
 
        sclass = CLASS_ELEMENT_TYPE(sclass);     
        dclass = CLASS_ELEMENT_TYPE(dclass);     
Index: kaffe/libraries/javalib/Klasses.jar.bootstrap
cvs rdiff: failed to read diff file header /tmp/cvsKEgR85 for 
Klasses.jar.bootstrap,v: end of file
system command returned non-zero exit status: 1: aborting

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to