+Wed Nov 15 15:42:01 EST 2006 Daniel Berrange <berrange@redhat.com>
+
+ * python/libvir.c, python/libvirt_wrap.h, python/types.h: Ensure
+ that unsigned longs are marshalled to python Long type instead
+ of Int, to avoid 32-bit integer wraparound
+
Tue Nov 14 18:42:01 EST 2006 Daniel Berrange <berrange@redhat.com>
* src/xend_internal.c: Added support for parsing non-bridge style
}
py_retval = PyList_New(5);
PyList_SetItem(py_retval, 0, libvirt_intWrap((int) info.state));
- PyList_SetItem(py_retval, 1, libvirt_longWrap((long) info.maxMem));
- PyList_SetItem(py_retval, 2, libvirt_longWrap((long) info.memory));
+ PyList_SetItem(py_retval, 1, libvirt_ulongWrap(info.maxMem));
+ PyList_SetItem(py_retval, 2, libvirt_ulongWrap(info.memory));
PyList_SetItem(py_retval, 3, libvirt_intWrap((int) info.nrVirtCpu));
PyList_SetItem(py_retval, 4,
libvirt_longlongWrap((unsigned long long) info.cpuTime));
PyObject * libvirt_intWrap(int val);
PyObject * libvirt_longWrap(long val);
+PyObject * libvirt_ulongWrap(unsigned long val);
PyObject * libvirt_longlongWrap(long long val);
PyObject * libvirt_charPtrWrap(char *str);
PyObject * libvirt_constcharPtrWrap(const char *str);
return (ret);
}
+PyObject *
+libvirt_ulongWrap(unsigned long val)
+{
+ PyObject *ret;
+
+#ifdef DEBUG
+ printf("libvirt_ulongWrap: val = %lu\n", val);
+#endif
+ ret = PyLong_FromLong(val);
+ return (ret);
+}
+
PyObject *
libvirt_longlongWrap(long long val)
{