[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] fix python events



David Lively <dlively virtualiron com> wrote:
> On Fri, 2008-11-21 at 17:51 +0100, Jim Meyering wrote:
>> No big deal, but there are several debug printf uses here that look
>> like they try to print NULL pointers upon memory allocation failure.
>> It's ok with glibc's printf of course, but not for others.
>
> You're right.  Attached patch fixes those issues.  It also fixes some
> cases in which I got some printf string operands switched around ...
>
> I'm printing the (user-supplied) object names to help in debugging
> misbehaving python EventImpls (since there's no static type checking to
> catch these kinds of things).  So instead of printing "<NULL>" when we
> can't alloc the name, I'm printing something a little more helpful (the
> appropriate "generic" name).

That's better, indeed.
I prefer your NAME macro, too.
ACK, modulo syntax:

> diff --git a/examples/domain-events/events-python/event-test.py b/examples/domain-events/events-python/event-test.py
> @@ -175,8 +185,7 @@ def main():
>
>          if h_cb != None:
>              #print "Invoking Handle CB"
> -            h_cb(0, h_fd, myPollEventToEventHandleType(revents & h_events),
> -                 h_opaque[0], h_opaque[1])
> +            h_cb(0, h_fd, myPollEventToEventHandleType(revents & h_events), h_opaque[0], h_opaque[1])

Reversed diff?  Better to split long lines,
not to join.

>          #print "DEBUG EXIT"
>          #break
> diff --git a/python/libvir.c b/python/libvir.c
> index 7d58442..fed1031 100644
> --- a/python/libvir.c
> +++ b/python/libvir.c
> @@ -35,6 +35,18 @@ extern void initcygvirtmod(void);
>  #define VIR_PY_INT_FAIL (libvirt_intWrap(-1))
>  #define VIR_PY_INT_SUCCESS (libvirt_intWrap(0))
>
> +static char *py_str(PyObject *obj)
> +{
> +    PyObject *str = PyObject_Str(obj);
> +    if (!str) {
> +        PyErr_Print();
> +        PyErr_Clear();
> +        return NULL;
> +    };
> +    return PyString_AsString(str);
> +}
> +        <<<

Trailing white space ^^.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]