Update of /cvsroot/jython/jython/org/python/core
In directory usw-pr-cvs1:/tmp/cvs-serv28997
Modified Files:
Py.java
Log Message:
Fix for "[ #477768 ] ord([123]) 21a3".
Check for the Py.NoConversion return value from __tojava_ before
casting the value.
Index: Py.java
===================================================================
RCS file: /cvsroot/jython/jython/org/python/core/Py.java,v
retrieving revision 2.52
retrieving revision 2.53
diff -C2 -d -r2.52 -r2.53
*** Py.java 2001/11/03 19:26:02 2.52
--- Py.java 2001/11/03 19:42:40 2.53
***************
*** 1244,1251 ****
if (o instanceof PyInteger) return (byte)((PyInteger)o).getValue();
! Byte i = (Byte)o.__tojava__(Byte.TYPE);
! if (i == null)
throw Py.TypeError("integer required");
! return i.byteValue();
}
public static short py2short(PyObject o) {
--- 1244,1251 ----
if (o instanceof PyInteger) return (byte)((PyInteger)o).getValue();
! Object i = o.__tojava__(Byte.TYPE);
! if (i == null || i == Py.NoConversion)
throw Py.TypeError("integer required");
! return ((Byte) i).byteValue();
}
public static short py2short(PyObject o) {
***************
*** 1253,1260 ****
return (short)((PyInteger)o).getValue();
! Short i = (Short)o.__tojava__(Short.TYPE);
! if (i == null)
throw Py.TypeError("integer required");
! return i.shortValue();
}
--- 1253,1260 ----
return (short)((PyInteger)o).getValue();
! Object i = o.__tojava__(Short.TYPE);
! if (i == null || i == Py.NoConversion)
throw Py.TypeError("integer required");
! return ((Short) i).shortValue();
}
***************
*** 1276,1283 ****
return (long)((PyInteger)o).getValue();
! Long i = (Long)o.__tojava__(Long.TYPE);
! if (i == null)
throw Py.TypeError("integer required");
! return i.longValue();
}
--- 1276,1283 ----
return (long)((PyInteger)o).getValue();
! Object i = o.__tojava__(Long.TYPE);
! if (i == null || i == Py.NoConversion)
throw Py.TypeError("integer required");
! return ((Long) i).longValue();
}
***************
*** 1288,1295 ****
return (float)((PyInteger)o).getValue();
! Float i = (Float)o.__tojava__(Float.TYPE);
! if (i == null)
throw Py.TypeError("float required");
! return i.floatValue();
}
public static double py2double(PyObject o) {
--- 1288,1295 ----
return (float)((PyInteger)o).getValue();
! Object i = o.__tojava__(Float.TYPE);
! if (i == null || i == Py.NoConversion)
throw Py.TypeError("float required");
! return ((Float) i).floatValue();
}
public static double py2double(PyObject o) {
***************
*** 1299,1306 ****
return (double)((PyInteger)o).getValue();
! Double i = (Double)o.__tojava__(Double.TYPE);
! if (i == null)
throw Py.TypeError("float required");
! return i.doubleValue();
}
--- 1299,1306 ----
return (double)((PyInteger)o).getValue();
! Object i = o.__tojava__(Double.TYPE);
! if (i == null || i == Py.NoConversion)
throw Py.TypeError("float required");
! return ((Double) i).doubleValue();
}
***************
*** 1320,1327 ****
}
! Character i = (Character)o.__tojava__(Character.TYPE);
! if (i == null)
throw Py.TypeError(msg);
! return i.charValue();
}
--- 1320,1327 ----
}
! Object i = o.__tojava__(Character.TYPE);
! if (i == null || i == Py.NoConversion)
throw Py.TypeError(msg);
! return ((Character) i).charValue();
}
|