diff options
author | Yann Vernier <yann@algonet.se> | 2005-12-27 18:28:09 +0300 |
---|---|---|
committer | Yann Vernier <yann@algonet.se> | 2005-12-27 18:28:09 +0300 |
commit | a61871360f3920a54fdb1acaaccb6cd5a4e61f85 (patch) | |
tree | fd5dd301d28e5404060c791e8db1191b4a1ea27c /source/blender/python/api2_2x/gen_utils.c | |
parent | b39465b7fb64b84ae3e2b3032b2c2e1195b59c96 (diff) |
Fix crash in EXPP_(int|obj)Error. These functions are redundant;
they only differ by return type, so it's easier to just call
PyErr_Format and return appropriately.
Diffstat (limited to 'source/blender/python/api2_2x/gen_utils.c')
-rw-r--r-- | source/blender/python/api2_2x/gen_utils.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/source/blender/python/api2_2x/gen_utils.c b/source/blender/python/api2_2x/gen_utils.c index 4e42c06d2a8..4460a93d38f 100644 --- a/source/blender/python/api2_2x/gen_utils.c +++ b/source/blender/python/api2_2x/gen_utils.c @@ -176,27 +176,29 @@ int EXPP_ReturnIntError( PyObject * type, char *error_msg ) int EXPP_intError(PyObject *type, const char *format, ...) { - char *error = ""; + PyObject *error; va_list vlist; va_start(vlist, format); - vsprintf(error, format, vlist); + error = PyString_FromFormatV(format, vlist); va_end(vlist); - PyErr_SetString(type, error); + PyErr_SetObject(type, error); + Py_DECREF(error); return -1; } //Like EXPP_ReturnPyObjError but takes a printf format string and multiple arguments PyObject *EXPP_objError(PyObject *type, const char *format, ...) { - char *error = ""; + PyObject *error; va_list vlist; va_start(vlist, format); - vsprintf(error, format, vlist); + error = PyString_FromFormatV(format, vlist); va_end(vlist); - PyErr_SetString(type, error); + PyErr_SetObject(type, error); + Py_DECREF(error); return NULL; } |