[Zope-Checkins] CVS: Zope2 - BucketTemplate.c:1.17

Matthew T. Kromer matt@digicool.com
Wed, 20 Jun 2001 15:47:00 -0400 (EDT)


Update of /cvs-repository/Zope2/lib/python/BTrees
In directory korak.digicool.com:/tmp/cvs-serv28783

Modified Files:
	BucketTemplate.c 
Log Message:
Move error trap to inner function rather than outer



--- Updated File BucketTemplate.c in package Zope2 --
--- BucketTemplate.c	2001/06/20 19:32:55	1.16
+++ BucketTemplate.c	2001/06/20 19:47:00	1.17
@@ -1113,21 +1113,7 @@
   Py_DECREF(b[1]);
   Py_DECREF(b[2]);
 
-  return r;
-}
-
-static PyObject *
-bucket__p_resolveConflict(Bucket *self, PyObject *args)
-{
-  PyObject *s[3];
-  PyObject *result;
-
-  UNLESS(PyArg_ParseTuple(args, "OOO", &s[0], &s[1], &s[2])) return NULL;
-
-  result = _bucket__p_resolveConflict(OBJECT(self->ob_type), s);
-
-  /* Change any errors to ConflictErrors */
-  if (result == NULL) {
+  if (r == NULL) {
   	PyObject *error;
   	PyObject *value;
   	PyObject *traceback;
@@ -1137,8 +1123,18 @@
 	Py_XDECREF(error);
 	PyErr_Restore(ConflictError, value, traceback);
   }
+
+  return r;
+}
+
+static PyObject *
+bucket__p_resolveConflict(Bucket *self, PyObject *args)
+{
+  PyObject *s[3];
+
+  UNLESS(PyArg_ParseTuple(args, "OOO", &s[0], &s[1], &s[2])) return NULL;
 
-  return result;
+  return _bucket__p_resolveConflict(OBJECT(self->ob_type), s);
 }
 #endif