More specific rendermode error messages
This commit is contained in:
@@ -373,7 +373,8 @@ chunk_render(PyObject *self, PyObject *args) {
|
|||||||
state.rendermode = rendermode = render_mode_create(PyString_AsString(rendermode_py), &state);
|
state.rendermode = rendermode = render_mode_create(PyString_AsString(rendermode_py), &state);
|
||||||
Py_DECREF(rendermode_py);
|
Py_DECREF(rendermode_py);
|
||||||
if (rendermode == NULL) {
|
if (rendermode == NULL) {
|
||||||
return PyErr_Format(PyExc_ValueError, "Failed to create render mode");
|
return NULL; // note that render_mode_create will
|
||||||
|
// set PyErr. No need to set it here
|
||||||
}
|
}
|
||||||
|
|
||||||
/* get the image size */
|
/* get the image size */
|
||||||
|
|||||||
@@ -124,23 +124,23 @@ RenderMode *render_mode_create(const char *mode, RenderState *state) {
|
|||||||
|
|
||||||
iface = render_mode_find_interface(mode);
|
iface = render_mode_find_interface(mode);
|
||||||
if (iface == NULL)
|
if (iface == NULL)
|
||||||
return NULL;
|
return PyErr_Format(PyExc_RuntimeError, "Failed to find rendermode interface");
|
||||||
|
|
||||||
options = render_mode_create_options(mode);
|
options = render_mode_create_options(mode);
|
||||||
if (options == NULL)
|
if (options == NULL)
|
||||||
return NULL;
|
return PyErr_Format(PyExc_RuntimeError, "Failed to create rendermode options");
|
||||||
|
|
||||||
ret = calloc(1, sizeof(RenderMode));
|
ret = calloc(1, sizeof(RenderMode));
|
||||||
if (ret == NULL) {
|
if (ret == NULL) {
|
||||||
Py_DECREF(options);
|
Py_DECREF(options);
|
||||||
return NULL;
|
return PyErr_Format(PyExc_RuntimeError, "Failed to alloc a rendermode");
|
||||||
}
|
}
|
||||||
|
|
||||||
ret->mode = calloc(1, iface->data_size);
|
ret->mode = calloc(1, iface->data_size);
|
||||||
if (ret->mode == NULL) {
|
if (ret->mode == NULL) {
|
||||||
Py_DECREF(options);
|
Py_DECREF(options);
|
||||||
free(ret);
|
free(ret);
|
||||||
return NULL;
|
return PyErr_Format(PyExc_RuntimeError, "Failed to alloc rendermode data");
|
||||||
}
|
}
|
||||||
|
|
||||||
ret->iface = iface;
|
ret->iface = iface;
|
||||||
@@ -150,7 +150,7 @@ RenderMode *render_mode_create(const char *mode, RenderState *state) {
|
|||||||
Py_DECREF(options);
|
Py_DECREF(options);
|
||||||
free(ret->mode);
|
free(ret->mode);
|
||||||
free(ret);
|
free(ret);
|
||||||
return NULL;
|
return PyErr_Format(PyExc_RuntimeError, "Failed to start rendermode interface");
|
||||||
}
|
}
|
||||||
|
|
||||||
Py_DECREF(options);
|
Py_DECREF(options);
|
||||||
|
|||||||
Reference in New Issue
Block a user