On Thu, Dec 29, 2011 at 12:36:14PM +0800, Osier Yang wrote: > On 2011年12月29日 09:56, Daniel Veillard wrote: > >* python/libvirt-override.c: remove the predefined array in the > > virConnectListDomainsID binding and call virConnectNumOfDomains > > to do a proper allocation > > > >diff --git a/python/libvirt-override.c b/python/libvirt-override.c > >index 8a643a3..2dea16b 100644 > >--- a/python/libvirt-override.c > >+++ b/python/libvirt-override.c > >@@ -1616,7 +1616,7 @@ static PyObject * > > libvirt_virConnectListDomainsID(PyObject *self ATTRIBUTE_UNUSED, > > PyObject *args) { > > PyObject *py_retval; > >- int ids[500], c_retval, i; > >+ int *ids = NULL, c_retval, i; > > virConnectPtr conn; > > PyObject *pyobj_conn; > > > >@@ -1626,14 +1626,34 @@ libvirt_virConnectListDomainsID(PyObject *self ATTRIBUTE_UNUSED, > > conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); > > > > LIBVIRT_BEGIN_ALLOW_THREADS; > >- c_retval = virConnectListDomains(conn,&ids[0], 500); > >+ c_retval = virConnectNumOfDomains(conn); > > LIBVIRT_END_ALLOW_THREADS; > > if (c_retval< 0) > > return VIR_PY_NONE; > >+ > >+ if (c_retval) { > >+ ids = malloc(sizeof(*ids) * c_retval); > >+ if (!ids) > > Intention problems, should be caused by TAB use. yeah, apparently I forgot to copy my .vimrc to the laptop :) > >+ return VIR_PY_NONE; > >+ > >+ > >+ LIBVIRT_BEGIN_ALLOW_THREADS; > >+ c_retval = virConnectListDomains(conn, ids, c_retval); > >+ LIBVIRT_END_ALLOW_THREADS; > >+ if (c_retval< 0) { > >+ free(ids); > >+ return VIR_PY_NONE; > >+ } > >+ } > > py_retval = PyList_New(c_retval); > >- for (i = 0;i< c_retval;i++) { > >- PyList_SetItem(py_retval, i, libvirt_intWrap(ids[i])); > >+ > >+ if (ids) { > >+ for (i = 0;i< c_retval;i++) { > >+ PyList_SetItem(py_retval, i, libvirt_intWrap(ids[i])); > >+ } > >+ free(ids); > > } > >+ > > return(py_retval); > > } > > > >Daniel > > ACK with the TAB use replaced by 4 white spaces. Thanks, fixed and commited, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list