[libvirt] [PATCH 1/2] python: Add new helper functions for python to C integral conversion
Eric Blake
eblake at redhat.com
Mon Mar 26 23:03:17 UTC 2012
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 at redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120326/d4870884/attachment-0001.sig>
More information about the libvir-list
mailing list