--- \classpath-cvs\classpath\java\io\ObjectInputStream.java	Wed Sep 11 09:43:37 2002
+++ ObjectInputStream.java	Fri Oct 25 10:39:40 2002
@@ -1405,7 +1405,7 @@
 		if (!default_initialize && set_value)
 		  dumpElementln ("  " + field_name + ": " + value);
 		if (set_value)
-		  setBooleanField (obj, field_name, value);
+		  setBooleanField (obj, stream_osc.forClass (), field_name, value);
 	      }
 	    else if (type == Byte.TYPE)
 	      {
@@ -1414,7 +1414,7 @@
 		if (!default_initialize && set_value)
 		  dumpElementln ("  " + field_name + ": " + value);
 		if (set_value)
-		  setByteField (obj, field_name, value);
+		  setByteField (obj, stream_osc.forClass (), field_name, value);
 	      }
 	    else if (type == Character.TYPE)
 	      {
@@ -1423,7 +1423,7 @@
 		if (!default_initialize && set_value)
 		  dumpElementln ("  " + field_name + ": " + value);
 		if (set_value)
-		  setCharField (obj, field_name, value);
+		  setCharField (obj, stream_osc.forClass (), field_name, value);
 	      }
 	    else if (type == Double.TYPE)
 	      {
@@ -1432,7 +1432,7 @@
 		if (!default_initialize && set_value)
 		  dumpElementln ("  " + field_name + ": " + value);
 		if (set_value)
-		  setDoubleField (obj, field_name, value);
+		  setDoubleField (obj, stream_osc.forClass (), field_name, value);
 	      }
 	    else if (type == Float.TYPE)
 	      {
@@ -1441,7 +1441,7 @@
 		if (!default_initialize && set_value)
 		  dumpElementln ("  " + field_name + ": " + value);
 		if (set_value)
-		  setFloatField (obj, field_name, value);
+		  setFloatField (obj, stream_osc.forClass (), field_name, value);
 	      }
 	    else if (type == Integer.TYPE)
 	      {
@@ -1450,7 +1450,7 @@
 		if (!default_initialize && set_value)
 		  dumpElementln ("  " + field_name + ": " + value);
 		if (set_value)
-		  setIntField (obj, field_name, value);
+		  setIntField (obj, stream_osc.forClass (), field_name, value);
 	      }
 	    else if (type == Long.TYPE)
 	      {
@@ -1459,7 +1459,7 @@
 		if (!default_initialize && set_value)
 		  dumpElementln ("  " + field_name + ": " + value);
 		if (set_value)
-		  setLongField (obj, field_name, value);
+		  setLongField (obj, stream_osc.forClass (), field_name, value);
 	      }
 	    else if (type == Short.TYPE)
 	      {
@@ -1468,14 +1468,14 @@
 		if (!default_initialize && set_value)
 		  dumpElementln ("  " + field_name + ": " + value);
 		if (set_value)
-		  setShortField (obj, field_name, value);
+		  setShortField (obj, stream_osc.forClass (), field_name, value);
 	      }
 	    else
 	      {
 		Object value =
 		  default_initialize ? null : readObject ();
 		if (set_value)
-		  setObjectField (obj, field_name,
+		  setObjectField (obj, stream_osc.forClass (), field_name,
 				  real_field.getTypeString (), value);
 	      }
 	  }
@@ -1549,23 +1549,23 @@
 
   private native void callConstructor (Class clazz, Object obj);
 
-  private native void setBooleanField (Object obj, String field_name,
+  private native void setBooleanField (Object obj, Class clazz, String field_name,
 				       boolean val);
-  private native void setByteField (Object obj, String field_name,
+  private native void setByteField (Object obj, Class clazz, String field_name,
 				    byte val);
-  private native void setCharField (Object obj, String field_name,
+  private native void setCharField (Object obj, Class clazz, String field_name,
 				    char val);
-  private native void setDoubleField (Object obj, String field_name,
+  private native void setDoubleField (Object obj, Class clazz, String field_name,
 				      double val);
-  private native void setFloatField (Object obj, String field_name,
+  private native void setFloatField (Object obj, Class clazz, String field_name,
 				     float val);
-  private native void setIntField (Object obj, String field_name,
+  private native void setIntField (Object obj, Class clazz, String field_name,
 				   int val);
-  private native void setLongField (Object obj, String field_name,
+  private native void setLongField (Object obj, Class clazz, String field_name,
 				    long val);
-  private native void setShortField (Object obj, String field_name,
+  private native void setShortField (Object obj, Class clazz, String field_name,
 				     short val);
-  private native void setObjectField (Object obj, String field_name,
+  private native void setObjectField (Object obj, Class clazz, String field_name,
 					String type_code, Object val);
 
 
--- \classpath-cvs\classpath\java\io\ObjectOutputStream.java	Wed Sep 11 09:43:37 2002
+++ ObjectOutputStream.java	Fri Oct 25 10:34:33 2002
@@ -367,7 +367,7 @@
 		    fieldsAlreadyWritten = false;
 		    has_write = currentObjectStreamClass.hasWriteMethod ();
 
-		    writeFields (obj, currentObjectStreamClass.fields,
+		    writeFields (obj, currentObjectStreamClass.forClass(), currentObjectStreamClass.fields,
 				 has_write);
 
 // 		    if (has_write)
@@ -432,7 +432,7 @@
     throws IOException, NotActiveException
   {
     markFieldsWritten ();
-    writeFields (currentObject, currentObjectStreamClass.fields, false);
+    writeFields (currentObject, currentObjectStreamClass.forClass(), currentObjectStreamClass.fields, false);
   }
 
 
@@ -1157,7 +1157,7 @@
   // writes out FIELDS of OBJECT.  If CALL_WRITE_METHOD is true, use
   // object's writeObject (ObjectOutputStream), otherwise use default
   // serialization.  FIELDS are already in canonical order.
-  private void writeFields (Object obj,
+  private void writeFields (Object obj, Class clazz,
 			    ObjectStreamField[] fields,
 			    boolean call_write_method) throws IOException
   {
@@ -1179,23 +1179,23 @@
       type = fields[i].getType ();
 
       if (type == Boolean.TYPE)
-	realOutput.writeBoolean (getBooleanField (obj, field_name));
+	realOutput.writeBoolean (getBooleanField (obj, clazz, field_name));
       else if (type == Byte.TYPE)
-	realOutput.writeByte (getByteField (obj, field_name));
+	realOutput.writeByte (getByteField (obj, clazz, field_name));
       else if (type == Character.TYPE)
-	realOutput.writeChar (getCharField (obj, field_name));
+	realOutput.writeChar (getCharField (obj, clazz, field_name));
       else if (type == Double.TYPE)
-	realOutput.writeDouble (getDoubleField (obj, field_name));
+	realOutput.writeDouble (getDoubleField (obj, clazz, field_name));
       else if (type == Float.TYPE)
-	realOutput.writeFloat (getFloatField (obj, field_name));
+	realOutput.writeFloat (getFloatField (obj, clazz, field_name));
       else if (type == Integer.TYPE)
-	realOutput.writeInt (getIntField (obj, field_name));
+	realOutput.writeInt (getIntField (obj, clazz, field_name));
       else if (type == Long.TYPE)
-	realOutput.writeLong (getLongField (obj, field_name));
+	realOutput.writeLong (getLongField (obj, clazz, field_name));
       else if (type == Short.TYPE)
-	realOutput.writeShort (getShortField (obj, field_name));
+	realOutput.writeShort (getShortField (obj, clazz, field_name));
       else
-	writeObject (getObjectField (obj, field_name,
+	writeObject (getObjectField (obj, clazz, field_name,
 				     fields[i].getTypeString ()));
     }
     setBlockDataMode (oldmode); // ??
@@ -1223,15 +1223,15 @@
 
 
   private native void callWriteMethod (Object obj);
-  private native boolean getBooleanField (Object obj, String field_name);
-  private native byte getByteField (Object obj, String field_name);
-  private native char getCharField (Object obj, String field_name);
-  private native double getDoubleField (Object obj, String field_name);
-  private native float getFloatField (Object obj, String field_name);
-  private native int getIntField (Object obj, String field_name);
-  private native long getLongField (Object obj, String field_name);
-  private native short getShortField (Object obj, String field_name);
-  private native Object getObjectField (Object obj, String field_name,
+  private native boolean getBooleanField (Object obj, Class clazz, String field_name);
+  private native byte getByteField (Object obj, Class clazz, String field_name);
+  private native char getCharField (Object obj, Class clazz, String field_name);
+  private native double getDoubleField (Object obj, Class clazz, String field_name);
+  private native float getFloatField (Object obj, Class clazz, String field_name);
+  private native int getIntField (Object obj, Class clazz, String field_name);
+  private native long getLongField (Object obj, Class clazz, String field_name);
+  private native short getShortField (Object obj, Class clazz, String field_name);
+  private native Object getObjectField (Object obj, Class clazz, String field_name,
 					String type_code);
 
 
