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;
 }