Mark Wielaard wrote: > > The rest of the verify output follows, but I have not analysed it yet. > > Cheers, > > Mark > > ------------------------------------------------------------------------ > Name: verify-jikes.libgcj > verify-jikes.libgcj Type: Plain Text (text/plain) > Encoding: quoted-printable
It looks like all the errors listed in this file were "incompatible type on stack", in other words, side effects of your ClassLoader hack. > > Name: verify-jikes.gcj > verify-jikes.gcj Type: Plain Text (text/plain) > Encoding: quoted-printable I have addressed all the errors listed in this file. With the attached patch and the latest CVS version of jikes (as of 9:15 am UTC Feb 9), this should be completely resolved. If you agree with me, then I will tag the current version of jikes CVS as stable, and bump the version to 1.15b. Shall I go ahead and commit the patch? -- This signature intentionally left boring. Eric Blake [EMAIL PROTECTED] BYU student, free software programmer
2002-02-09 Eric Blake <[EMAIL PROTECTED]> * java/net/DatagramSocketImpl.java (setOption, getOption): Work around gcj bug of wrong emitted qualifier for inherited method. * java/net/SocketImpl.java (setOption, getOption): Ditto. * java/util/WeakHashMap.java (WeakEntrySet): Work around jikes 1.15 bug of private constructors in inner classes. * java/rmi/server/RMIClassLoader.java (MyClassLoader): Ditto. * gnu/java/rmi/server/UnicastRemoteCall.java (DummyObjectOutputStream, DummyObjectInputStream): Ditto. Index: java/net/DatagramSocketImpl.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/net/DatagramSocketImpl.java,v retrieving revision 1.11 diff -u -r1.11 DatagramSocketImpl.java --- java/net/DatagramSocketImpl.java 22 Jan 2002 22:27:00 -0000 1.11 +++ java/net/DatagramSocketImpl.java 9 Feb 2002 09:17:31 -0000 @@ -1,5 +1,5 @@ /* DatagramSocketImpl.java -- Abstract class for UDP socket implementations - Copyright (C) 1998, 1999 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 1999 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -203,4 +203,34 @@ { return localPort; } + + /** + * Sets the specified option on a socket to the passed in object. For + * options that take an integer argument, the passed in object is an + * <code>Integer</code>. For options that are set to on or off, the + * value passed will be a <code>Boolean</code>. The <code>option_id</code> + * parameter is one of the defined constants in the superinterface. + * + * @param option_id The identifier of the option + * @param val The value to set the option to + * + * @exception SocketException If an error occurs + */ + public abstract void setOption(int option_id, Object val) + throws SocketException; + + /** + * Returns the current setting of the specified option. The + * <code>Object</code> returned will be an <code>Integer</code> for options + * that have integer values. For options that are set to on or off, a + * <code>Boolean</code> will be returned. The <code>option_id</code> + * is one of the defined constants in the superinterface. + * + * @param option_id The option identifier + * + * @return The current value of the option + * + * @exception SocketException If an error occurs + */ + public abstract Object getOption(int option_id) throws SocketException; } Index: java/net/SocketImpl.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/net/SocketImpl.java,v retrieving revision 1.7 diff -u -r1.7 SocketImpl.java --- java/net/SocketImpl.java 22 Jan 2002 22:27:00 -0000 1.7 +++ java/net/SocketImpl.java 9 Feb 2002 09:17:31 -0000 @@ -1,5 +1,5 @@ /* SocketImpl.java -- Abstract socket implementation class - Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -234,4 +234,34 @@ return "[addr=" + address.toString() + ",port=" + Integer.toString(port) + ",localport=" + Integer.toString(localport) + "]"; } + + /** + * Sets the specified option on a socket to the passed in object. For + * options that take an integer argument, the passed in object is an + * <code>Integer</code>. For options that are set to on or off, the + * value passed will be a <code>Boolean</code>. The <code>option_id</code> + * parameter is one of the defined constants in the superinterface. + * + * @param option_id The identifier of the option + * @param val The value to set the option to + * + * @exception SocketException If an error occurs + */ + public abstract void setOption(int option_id, Object val) + throws SocketException; + + /** + * Returns the current setting of the specified option. The + * <code>Object</code> returned will be an <code>Integer</code> for options + * that have integer values. For options that are set to on or off, a + * <code>Boolean</code> will be returned. The <code>option_id</code> + * is one of the defined constants in the superinterface. + * + * @param option_id The option identifier + * + * @return The current value of the option + * + * @exception SocketException If an error occurs + */ + public abstract Object getOption(int option_id) throws SocketException; } Index: java/util/WeakHashMap.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/util/WeakHashMap.java,v retrieving revision 1.10 diff -u -r1.10 WeakHashMap.java --- java/util/WeakHashMap.java 22 Jan 2002 22:27:01 -0000 1.10 +++ java/util/WeakHashMap.java 9 Feb 2002 09:17:31 -0000 @@ -1,6 +1,6 @@ /* java.util.WeakHashMap -- a hashtable that keeps only weak references to its keys, allowing the virtual machine to reclaim them - Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -169,6 +169,13 @@ */ private final class WeakEntrySet extends AbstractSet { + /** + * Non-private constructor to reduce bytecode emitted. + */ + WeakEntrySet() + { + } + /** * Returns the size of this set. * Index: java/rmi/server/RMIClassLoader.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/rmi/server/RMIClassLoader.java,v retrieving revision 1.2 diff -u -r1.2 RMIClassLoader.java --- java/rmi/server/RMIClassLoader.java 22 Jan 2002 22:27:00 -0000 1.2 +++ java/rmi/server/RMIClassLoader.java 9 Feb 2002 09:17:31 -0000 @@ -1,5 +1,5 @@ /* - Copyright (c) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,12 +46,20 @@ public class RMIClassLoader { -static private class MyClassLoader extends ClassLoader { - -Class defineClass(String name, byte[] data) { - return (defineClass(name, data, 0, data.length)); -} -} + static private class MyClassLoader extends ClassLoader + { + /** + * Non-private constructor to reduce bytecode emitted. + */ + MyClassLoader() + { + } + + Class defineClass(String name, byte[] data) + { + return (defineClass(name, data, 0, data.length)); + } + } static private MyClassLoader loader = new MyClassLoader(); /** Index: gnu/java/rmi/server/UnicastRemoteCall.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/rmi/server/UnicastRemoteCall.java,v retrieving revision 1.2 diff -u -r1.2 UnicastRemoteCall.java --- gnu/java/rmi/server/UnicastRemoteCall.java 22 Jan 2002 22:26:57 -0000 1.2 +++ gnu/java/rmi/server/UnicastRemoteCall.java 9 Feb 2002 09:17:31 -0000 @@ -1,5 +1,5 @@ /* - Copyright (c) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -133,179 +133,232 @@ vec.addElement(obj); } -/** - * Dummy object output class. - */ -private class DummyObjectOutputStream implements ObjectOutput { - -public void writeBoolean(boolean v) throws IOException { - vec.addElement(new Boolean(v)); -} - -public void writeByte(int v) throws IOException { - vec.addElement(new Byte((byte)v)); -} - -public void writeChar(int v) throws IOException { - vec.addElement(new Character((char)v)); -} - -public void writeDouble(double v) throws IOException { - vec.addElement(new Double(v)); -} - -public void writeFloat(float v) throws IOException { - vec.addElement(new Float(v)); -} - -public void writeInt(int v) throws IOException { - vec.addElement(new Integer(v)); -} - -public void writeLong(long v) throws IOException { - vec.addElement(new Long(v)); -} - -public void writeShort(int v) throws IOException { - vec.addElement(new Short((short)v)); -} - -public void writeObject(Object obj) throws IOException { - vec.addElement(obj); -} - -public void write(byte b[]) throws IOException { - throw new IOException("not required"); -} - -public void write(byte b[], int off, int len) throws IOException { - throw new IOException("not required"); -} - -public void write(int b) throws IOException { - throw new IOException("not required"); -} - -public void writeBytes(String s) throws IOException { - throw new IOException("not required"); -} - -public void writeChars(String s) throws IOException { - throw new IOException("not required"); -} - -public void writeUTF(String str) throws IOException { - throw new IOException("not required"); -} - -public void flush() throws IOException { -} - -public void close() throws IOException { -} - -} - -/** - * Dummy object input class. - */ -private class DummyObjectInputStream implements ObjectInput { - -public boolean readBoolean() throws IOException { - Object obj = vec.elementAt(ptr++); - return (((Boolean)obj).booleanValue()); -} + /** + * Dummy object output class. + */ + private class DummyObjectOutputStream implements ObjectOutput + { + /** + * Non-private constructor to reduce bytecode emitted. + */ + DummyObjectOutputStream() + { + } + + public void writeBoolean(boolean v) throws IOException + { + vec.addElement(new Boolean(v)); + } + + public void writeByte(int v) throws IOException + { + vec.addElement(new Byte((byte)v)); + } + + public void writeChar(int v) throws IOException + { + vec.addElement(new Character((char)v)); + } + + public void writeDouble(double v) throws IOException + { + vec.addElement(new Double(v)); + } + + public void writeFloat(float v) throws IOException + { + vec.addElement(new Float(v)); + } + + public void writeInt(int v) throws IOException + { + vec.addElement(new Integer(v)); + } + + public void writeLong(long v) throws IOException + { + vec.addElement(new Long(v)); + } + + public void writeShort(int v) throws IOException + { + vec.addElement(new Short((short)v)); + } + + public void writeObject(Object obj) throws IOException + { + vec.addElement(obj); + } + + public void write(byte b[]) throws IOException + { + throw new IOException("not required"); + } + + public void write(byte b[], int off, int len) throws IOException + { + throw new IOException("not required"); + } + + public void write(int b) throws IOException + { + throw new IOException("not required"); + } + + public void writeBytes(String s) throws IOException + { + throw new IOException("not required"); + } + + public void writeChars(String s) throws IOException + { + throw new IOException("not required"); + } + + public void writeUTF(String str) throws IOException + { + throw new IOException("not required"); + } + + public void flush() throws IOException + { + } + + public void close() throws IOException + { + } + + } + + /** + * Dummy object input class. + */ + private class DummyObjectInputStream implements ObjectInput + { + /** + * Non-private constructor to reduce bytecode emitted. + */ + DummyObjectInputStream() + { + } + + public boolean readBoolean() throws IOException + { + Object obj = vec.elementAt(ptr++); + return (((Boolean)obj).booleanValue()); + } + + public byte readByte() throws IOException + { + Object obj = vec.elementAt(ptr++); + return (((Byte)obj).byteValue()); + } + + public char readChar() throws IOException + { + Object obj = vec.elementAt(ptr++); + return (((Character)obj).charValue()); + } + + public double readDouble() throws IOException + { + Object obj = vec.elementAt(ptr++); + return (((Double)obj).doubleValue()); + } + + public float readFloat() throws IOException + { + Object obj = vec.elementAt(ptr++); + return (((Float)obj).floatValue()); + } + + public int readInt() throws IOException + { + Object obj = vec.elementAt(ptr++); + return (((Integer)obj).intValue()); + } + + public long readLong() throws IOException + { + Object obj = vec.elementAt(ptr++); + return (((Long)obj).longValue()); + } + + public short readShort() throws IOException + { + Object obj = vec.elementAt(ptr++); + return (((Short)obj).shortValue()); + } + + public Object readObject() throws IOException + { + return (vec.elementAt(ptr++)); + } + + public int read(byte b[]) throws IOException + { + throw new IOException("not required"); + } + + public int read(byte b[], int off, int len) throws IOException + { + throw new IOException("not required"); + } + + public int read() throws IOException + { + throw new IOException("not required"); + } + + public long skip(long n) throws IOException + { + throw new IOException("not required"); + } + + public int available() throws IOException + { + throw new IOException("not required"); + } + + public void readFully(byte b[]) throws IOException + { + throw new IOException("not required"); + } + + public void readFully(byte b[], int off, int len) throws IOException + { + throw new IOException("not required"); + } + + public String readLine() throws IOException + { + throw new IOException("not required"); + } + + public String readUTF() throws IOException + { + throw new IOException("not required"); + } + + public int readUnsignedByte() throws IOException + { + throw new IOException("not required"); + } + + public int readUnsignedShort() throws IOException + { + throw new IOException("not required"); + } + + public int skipBytes(int n) throws IOException + { + throw new IOException("not required"); + } + + public void close() throws IOException + { + } -public byte readByte() throws IOException { - Object obj = vec.elementAt(ptr++); - return (((Byte)obj).byteValue()); -} - -public char readChar() throws IOException { - Object obj = vec.elementAt(ptr++); - return (((Character)obj).charValue()); -} - -public double readDouble() throws IOException { - Object obj = vec.elementAt(ptr++); - return (((Double)obj).doubleValue()); -} - -public float readFloat() throws IOException { - Object obj = vec.elementAt(ptr++); - return (((Float)obj).floatValue()); -} - -public int readInt() throws IOException { - Object obj = vec.elementAt(ptr++); - return (((Integer)obj).intValue()); -} - -public long readLong() throws IOException { - Object obj = vec.elementAt(ptr++); - return (((Long)obj).longValue()); -} - -public short readShort() throws IOException { - Object obj = vec.elementAt(ptr++); - return (((Short)obj).shortValue()); -} - -public Object readObject() throws IOException { - return (vec.elementAt(ptr++)); -} - -public int read(byte b[]) throws IOException { - throw new IOException("not required"); -} - -public int read(byte b[], int off, int len) throws IOException { - throw new IOException("not required"); -} - -public int read() throws IOException { - throw new IOException("not required"); -} - -public long skip(long n) throws IOException { - throw new IOException("not required"); -} - -public int available() throws IOException { - throw new IOException("not required"); -} - -public void readFully(byte b[]) throws IOException { - throw new IOException("not required"); -} - -public void readFully(byte b[], int off, int len) throws IOException { - throw new IOException("not required"); -} - -public String readLine() throws IOException { - throw new IOException("not required"); -} - -public String readUTF() throws IOException { - throw new IOException("not required"); -} - -public int readUnsignedByte() throws IOException { - throw new IOException("not required"); -} - -public int readUnsignedShort() throws IOException { - throw new IOException("not required"); -} - -public int skipBytes(int n) throws IOException { - throw new IOException("not required"); -} - -public void close() throws IOException { -} - -} + } }