l.append('static PyObject *py_%s_%s_get(Py_%s *self, void *priv)'%(ty.rawname, f.name, ty.rawname))
l.append('{')
if t == TYPE_BOOL:
- l.append(' return (self->obj.%s) ? Py_True : Py_False;'%f.name)
+ l.append(' PyObject *ret;')
+ l.append(' ret = (self->obj.%s) ? Py_True : Py_False;'%f.name)
+ l.append(' Py_INCREF(ret);')
+ l.append(' return ret;')
elif t == TYPE_INT:
l.append(' return genwrap__ll_get(self->obj.%s);'%f.name)
elif t == TYPE_UINT:
PyObject *genwrap__string_get(char **str)
{
- if ( NULL == *str )
+ if ( NULL == *str ) {
+ Py_INCREF(Py_None);
return Py_None;
+ }
return PyString_FromString(*str);
}
if ( NULL == di )
goto err_mem;
memcpy(&di->obj, cur, sizeof(di->obj));
+ /* SetItem steals a reference */
PyList_SetItem(list, i, (PyObject *)di);
}
PyErr_SetString(xl_error_obj, "cannot shutdown domain");
return NULL;
}
+ Py_INCREF(Py_None);
return Py_None;
}
PyErr_SetString(xl_error_obj, "cannot destroy domain");
return NULL;
}
+ Py_INCREF(Py_None);
return Py_None;
}
PyErr_SetString(xl_error_obj, "cannot pause domain");
return NULL;
}
+ Py_INCREF(Py_None);
return Py_None;
}
PyErr_SetString(xl_error_obj, "cannot unpause domain");
return NULL;
}
+ Py_INCREF(Py_None);
return Py_None;
}
PyErr_SetString(xl_error_obj, "cannot rename domain");
return NULL;
}
+ Py_INCREF(Py_None);
return Py_None;
}
PyErr_SetString(xl_error_obj, "cannot add pci device");
return NULL;
}
+ Py_INCREF(Py_None);
return Py_None;
}
PyErr_SetString(xl_error_obj, "cannot remove pci device");
return NULL;
}
+ Py_INCREF(Py_None);
return Py_None;
}