SWIGSTATICINLINE(long)
SWIG_AsLong(PyObject * obj)
{
- return PyInt_Check(obj) ? PyInt_AsLong(obj) : PyLong_AsLong(obj);
+ if (PyNumber_Check(obj))
+ return PyInt_AsLong(obj);
+ else {
+ PyObject* errmsg = PyString_FromFormat("Expected number, got %s",
+ obj->ob_type->tp_name);
+ PyErr_SetObject(PyExc_TypeError, errmsg);
+ Py_DECREF(errmsg);
+ return 0;
+ }
}
if (PyLong_Check(obj)) {
return PyLong_AsUnsignedLong(obj);
} else {
- long i = PyInt_AsLong(obj);
+ long i = SWIG_AsLong(obj);
if ( !PyErr_Occurred() && (i < 0)) {
- PyErr_SetString(PyExc_TypeError, "negative value for unsigned type");
+ PyErr_SetString(PyExc_TypeError, "negative value received for unsigned type");
}
return i;
}