cool, thanks :) Committed revision 1026.
On 7/27/07, Campbell Barton <[EMAIL PROTECTED]> wrote: > Hi, I have been looking into parsing numbers with Blender3D's api and > thought Id take a look at how PyGame parses numbers. > > Even though youd think PyInt_AsLong would only work with PyInt's it > actually converts any type that supports the PyNumber protocol into an > in. - so theres no advantage in using PyNumber_Int. > > the code below is from base.c, a smaller replacement for IntFromObj is > below. This avoids creating and removing a PyObject every time. > > _________________________________________________ > /* internal C API utility functions */ > static int > IntFromObj (PyObject* obj, int* val) > { > PyObject* intobj; > > if (PyNumber_Check (obj)) > { > if (!(intobj = PyNumber_Int (obj))) > { > PyErr_Clear (); > return 0; > } > *val = PyInt_AsLong (intobj); > Py_DECREF (intobj); > if (PyErr_Occurred ()) > { > PyErr_Clear (); > return 0; > } > return 1; > } > return 0; > } > > > _____________________________________________- > > /* internal C API utility functions */ > static int > IntFromObj (PyObject* obj, int* val) > { > int tmp_val; > tmp_val = PyInt_AsLong (obj); > if (tmp_val == -1 && PyErr_Occurred ()) > { > PyErr_Clear (); > return 0; > } > *val = tmp_val; > return 1; > } >