diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-02-13 08:55:05 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-02-13 08:55:05 +0400 |
commit | 0ec23efbf27354a410ce162b6d3f2ba0fa5e86a7 (patch) | |
tree | 9571ac4d29a4cda10f936450659c513d4f92e006 /source/blender/python/bmesh/bmesh_py_ops_call.c | |
parent | 0b8bfbebc8b7a90c1c2ac6d63efa64b28aa0d571 (diff) |
bmesh operators exceptions were not cleared after raising as a python exception.
also clear before calling the operator.
Diffstat (limited to 'source/blender/python/bmesh/bmesh_py_ops_call.c')
-rw-r--r-- | source/blender/python/bmesh/bmesh_py_ops_call.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/python/bmesh/bmesh_py_ops_call.c b/source/blender/python/bmesh/bmesh_py_ops_call.c index d4c8033589a..fad3e4a35cd 100644 --- a/source/blender/python/bmesh/bmesh_py_ops_call.c +++ b/source/blender/python/bmesh/bmesh_py_ops_call.c @@ -48,11 +48,13 @@ static int bpy_bm_op_as_py_error(BMesh *bm) { if (BMO_error_occurred(bm)) { + /* note: we could have multiple errors */ const char *errmsg; if (BMO_error_get(bm, &errmsg, NULL)) { PyErr_Format(PyExc_RuntimeError, "bmesh operator: %.200s", errmsg); + BMO_error_clear(bm); return -1; } } @@ -692,6 +694,9 @@ PyObject *BPy_BMO_call(BPy_BMeshOpFunc *self, PyObject *args, PyObject *kw) { BPY_BM_CHECK_OBJ(py_bm); bm = py_bm->bm; + + /* could complain about entering with exceptions... */ + BMO_error_clear(bm); } else { PyErr_SetString(PyExc_TypeError, |