[kaffe] CVS kaffe (guilhem): Integer overflow fix in System.arraycopy

Michael Franz mvfranz at gmail.com
Sun Apr 3 19:15:40 PDT 2005


I was at the NY JAVASIG [1] last week and one of the things that Sun
did to improved performance in JDK 5.0 was to optimise
System.arraycopy (I assume it is a native method).  Any idea how fast
the Kaffe implementation is.

Michael

1.http://www.javasig.com/

On Apr 3, 2005 3:48 PM, Kaffe CVS <cvs-commits at kaffe.org> wrote:
> PatchSet 5657
> Date: 2005/04/03 20:43:28
> Author: guilhem
> Branch: HEAD
> Tag: (none)
> Log:
> Integer overflow fix in System.arraycopy
> 
> 2005-04-03  Guilhem Lavaux  <guilhem at kaffe.org>,
>         Mark Wielaard <mark at klomp.org>
> 
>         * libraries/javalib/java/lang/System.java
>         (arraycopy): Cast to long to prevent integer overflow.
> 
> Members:
>         ChangeLog:1.3827->1.3828
>         libraries/javalib/java/lang/System.java:1.45->1.46
> 
> Index: kaffe/ChangeLog
> diff -u kaffe/ChangeLog:1.3827 kaffe/ChangeLog:1.3828
> --- kaffe/ChangeLog:1.3827      Sun Apr  3 19:20:25 2005
> +++ kaffe/ChangeLog     Sun Apr  3 20:43:28 2005
> @@ -1,3 +1,9 @@
> +2005-04-03  Guilhem Lavaux  <guilhem at kaffe.org>,
> +       Mark Wielaard <mark at klomp.org>
> +
> +       * libraries/javalib/java/lang/System.java
> +       (arraycopy): Cast to long to prevent integer overflow.
> +
>  2005-04-03  Dalibor Topic  <robilad at kaffe.org>
> 
>         * config/ia64/hpux/config.frag,
> Index: kaffe/libraries/javalib/java/lang/System.java
> diff -u kaffe/libraries/javalib/java/lang/System.java:1.45 kaffe/libraries/javalib/java/lang/System.java:1.46
> --- kaffe/libraries/javalib/java/lang/System.java:1.45  Wed Jan  5 20:06:43 2005
> +++ kaffe/libraries/javalib/java/lang/System.java       Sun Apr  3 20:43:31 2005
> @@ -79,7 +79,7 @@
> 
>      final int src_length = Array.getLength(src);
> 
> -    if (src_position + length > src_length)
> +    if ((long)src_position + (long)length > (long)src_length)
>         throw new ArrayIndexOutOfBoundsException("src_position + length > src.length: " + src_position + " + " + length + " > " + src_length);
> 
>      if (dst_position < 0)
> @@ -87,7 +87,7 @@
> 
>      final int dst_length = Array.getLength(dst);
> 
> -    if (dst_position + length > dst_length)
> +    if ((long)dst_position + (long)length > (long)dst_length)
>         throw new ArrayIndexOutOfBoundsException("dst_position + length > dst.length: " + dst_position + " + " + length + " > " + dst_length);
> 
>      if (length < 0)
> 
> _______________________________________________
> kaffe mailing list
> kaffe at kaffe.org
> http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
>



More information about the kaffe mailing list