
On 2011年12月14日 02:38, Eric Blake wrote:
On 12/13/2011 06:43 AM, Osier Yang wrote:
--- python/libvirt-override-api.xml | 8 ++++++++ python/libvirt-override.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 0 deletions(-)
+ if ((buf = malloc(size)) == NULL) + return VIR_PY_NONE; + + LIBVIRT_BEGIN_ALLOW_THREADS; + c_retval = virDomainMemoryPeek(domain, start, size, buf, flags); + LIBVIRT_END_ALLOW_THREADS; + + if (c_retval< 0) + return VIR_PY_NONE; + + py_retval = libvirt_charPtrWrap(buf); + return py_retval;
Same problems as for blockPeek. I don't know if PyString_FromStringAndSize will do what you want, but that's my guess, based on its use for VIR_UUID_BUFLEN arrays.
Actually I found the problem after the patch was posted, I got the empty output with a testing script. And yes, PyString_fromStringAndSize worked well. Though with using it the output is one byte different with using C API directly, I'm still looking. Osier