diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d78d2734db7d30ba6598cca9d440d33d8448d0e3..b7eea9697b9bd0e83f79cc283cf3285905834394 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2004-07-09 Michael Koch <konqueror@gmx.de> + + * java/io/ObjectInputStream.java (readFields): Use long datatype + when shifting byte values more then 24 bits left. + 2004-07-09 Michael Koch <konqueror@gmx.de> * java/util/zip/DeflaterOutputStream.java, diff --git a/libjava/java/io/ObjectInputStream.java b/libjava/java/io/ObjectInputStream.java index 292f841a65795377a9acf24f8e81e00d3def36ce..809e9b1c94120be4ed46384cb62643a1c3c01d7c 100644 --- a/libjava/java/io/ObjectInputStream.java +++ b/libjava/java/io/ObjectInputStream.java @@ -1332,10 +1332,10 @@ public class ObjectInputStream extends InputStream int off = field.getOffset(); - return (long)(((prim_field_data[off++] & 0xFF) << 56) - | ((prim_field_data[off++] & 0xFF) << 48) - | ((prim_field_data[off++] & 0xFF) << 40) - | ((prim_field_data[off++] & 0xFF) << 32) + return (long)(((prim_field_data[off++] & 0xFFL) << 56) + | ((prim_field_data[off++] & 0xFFL) << 48) + | ((prim_field_data[off++] & 0xFFL) << 40) + | ((prim_field_data[off++] & 0xFFL) << 32) | ((prim_field_data[off++] & 0xFF) << 24) | ((prim_field_data[off++] & 0xFF) << 16) | ((prim_field_data[off++] & 0xFF) << 8) @@ -1369,10 +1369,10 @@ public class ObjectInputStream extends InputStream int off = field.getOffset(); return Double.longBitsToDouble - ( (long) (((prim_field_data[off++] & 0xFF) << 56) - | ((prim_field_data[off++] & 0xFF) << 48) - | ((prim_field_data[off++] & 0xFF) << 40) - | ((prim_field_data[off++] & 0xFF) << 32) + ( (long) (((prim_field_data[off++] & 0xFFL) << 56) + | ((prim_field_data[off++] & 0xFFL) << 48) + | ((prim_field_data[off++] & 0xFFL) << 40) + | ((prim_field_data[off++] & 0xFFL) << 32) | ((prim_field_data[off++] & 0xFF) << 24) | ((prim_field_data[off++] & 0xFF) << 16) | ((prim_field_data[off++] & 0xFF) << 8)