On 03/26/2012 12:10 AM, Guannan Ren wrote: > int libvirt_intUnwrap(PyObject *obj, int *val); > int libvirt_uintUnwrap(PyObject *obj, unsigned int *val); > int libvirt_longUnwrap(PyObject *obj, long *val); > int libvirt_ulongUnwrap(PyObject *obj, unsigned long *val); > int libvirt_longlongUnwrap(PyObject *obj, long long *val); > int libvirt_ulonglongUnwrap(PyObject *obj, unsigned long long *val); > int libvirt_doubleUnwrap(PyObject *obj, double *val); > int libvirt_boolUnwrap(PyObject *obj, bool *val); > --- > python/typewrappers.c | 142 +++++++++++++++++++++++++++++++++++++++++++++++++ > python/typewrappers.h | 9 +++ > 2 files changed, 151 insertions(+), 0 deletions(-) > > +int > +libvirt_boolUnwrap(PyObject *obj, bool *val) > +{ > + int ret = -1; > + > + /* We only accept PyInt_Type, PyLong_Type and PyBool_Type > + * as the boolean representation. Why? > + */ > + if (PyInt_Check(obj) || > + PyLong_Check(obj) || PyBool_Check(obj)) { > + ret = PyObject_IsTrue(obj); Why not blindly use PyObject_IsTrue(obj), and accept _all_ objects that can be converted to python truth values, rather than forcing things to be PyInt, PyBool, or PyLong? ACK to the rest of the patch, but I think we want libvirt_boolUnwrap to be more forgiving. -- Eric Blake eblake@xxxxxxxxxx +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list