You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/08/24 23:14:53 UTC
svn commit: r1161278 -
/subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c
Author: hwright
Date: Wed Aug 24 21:14:52 2011
New Revision: 1161278
URL: http://svn.apache.org/viewvc?rev=1161278&view=rev
Log:
On the fs-py branch:
Fix a parsing error, and improve some error checking.
* subversion/libsvn_fs_py/py_util.c
(notify_func_wrapper): Expect raw args, not a tuple. Also, do some extra
error checking, and return NULL if an error occurs.
(cancel_func_wrapper): Extra error checking.
Modified:
subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c
Modified: subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c?rev=1161278&r1=1161277&r2=1161278&view=diff
==============================================================================
--- subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c (original)
+++ subversion/branches/fs-py/subversion/libsvn_fs_py/py_util.c Wed Aug 24 21:14:52 2011
@@ -632,15 +632,18 @@ notify_func_wrapper(PyObject *p_tuple, P
svn_error_t *err;
apr_pool_t *pool;
- PyArg_ParseTuple(args, (char *)"(li)", &shard, &action);
+ PyArg_ParseTuple(args, (char *)"li", &shard, &action);
if (PyErr_Occurred())
- Py_RETURN_NONE;
+ return NULL;
c_func = PySequence_GetItem(p_tuple, 0);
notify_func = PyCObject_AsVoidPtr(c_func);
Py_DECREF(c_func);
baton = PySequence_GetItem(p_tuple, 1);
+ if (PyErr_Occurred())
+ return NULL;
+
if (baton == Py_None)
notify_baton = NULL;
else
@@ -651,7 +654,10 @@ notify_func_wrapper(PyObject *p_tuple, P
err = notify_func(notify_baton, shard, action, pool);
svn_pool_destroy(pool);
if (err)
- raise_and_clear_err(err);
+ {
+ raise_and_clear_err(err);
+ return NULL;
+ }
Py_RETURN_NONE;
}
@@ -703,6 +709,9 @@ cancel_func_wrapper(PyObject *p_tuple, P
Py_DECREF(c_func);
baton = PySequence_GetItem(p_tuple, 1);
+ if (PyErr_Occurred())
+ return NULL;
+
if (baton == Py_None)
cancel_baton = NULL;
else
@@ -711,7 +720,10 @@ cancel_func_wrapper(PyObject *p_tuple, P
err = cancel_func(cancel_baton);
if (err)
- raise_and_clear_err(err);
+ {
+ raise_and_clear_err(err);
+ return NULL;
+ }
Py_RETURN_NONE;
}