You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by bl...@apache.org on 2010/12/22 00:54:27 UTC

svn commit: r1051702 - in /subversion/trunk/subversion: include/svn_error.h include/svn_ra.h libsvn_ra/util.c libsvn_subr/error.c tests/cmdline/atomic-ra-revprop-change.c

Author: blair
Date: Tue Dec 21 23:54:27 2010
New Revision: 1051702

URL: http://svn.apache.org/viewvc?rev=1051702&view=rev
Log:
Replace svn_error_has_cause() with svn_error_find_cause() that instead
of returning a Boolean, returns the actual matching cause.  Users can
still use a Boolean context to determine if there was a match, so
there's no drawback to this change.

* subversion/include/svn_error.h,
* subversion/libsvn_subr/error.c
  (svn_error_find_cause):
    Renamed from svn_error_has_cause().  Change the return type from
    svn_boolean_t to svn_error_t *.

* subversion/include/svn_ra.h
  (svn_ra_change_rev_prop2):
    Refer to the new function name.

* subversion/libsvn_ra/util.c
  (is_atomicity_error):
    Use the new function.

* subversion/tests/cmdline/atomic-ra-revprop-change.c
  (change_rev_prop):
    Use the new function.

Modified:
    subversion/trunk/subversion/include/svn_error.h
    subversion/trunk/subversion/include/svn_ra.h
    subversion/trunk/subversion/libsvn_ra/util.c
    subversion/trunk/subversion/libsvn_subr/error.c
    subversion/trunk/subversion/tests/cmdline/atomic-ra-revprop-change.c

Modified: subversion/trunk/subversion/include/svn_error.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_error.h?rev=1051702&r1=1051701&r2=1051702&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_error.h (original)
+++ subversion/trunk/subversion/include/svn_error.h Tue Dec 21 23:54:27 2010
@@ -193,14 +193,15 @@ svn_error_compose(svn_error_t *chain,
 svn_error_t *
 svn_error_root_cause(svn_error_t *err);
 
-/** Return TRUE if @a err's chain contains the error code @a apr_err.
+/** Return the first error in @a err's chain that has an error code @a
+ * apr_err or #SVN_NO_ERROR if there is no error with that code.
  *
- * If @a err is #SVN_NO_ERROR, return FALSE.
+ * If @a err is #SVN_NO_ERROR, return #SVN_NO_ERROR.
  *
  * @since New in 1.7.
  */
-svn_boolean_t
-svn_error_has_cause(svn_error_t *err, apr_status_t apr_err);
+svn_error_t *
+svn_error_find_cause(svn_error_t *err, apr_status_t apr_err);
 
 /** Create a new error that is a deep copy of @a err and return it.
  *

Modified: subversion/trunk/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_ra.h?rev=1051702&r1=1051701&r2=1051702&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_ra.h (original)
+++ subversion/trunk/subversion/include/svn_ra.h Tue Dec 21 23:54:27 2010
@@ -762,7 +762,7 @@ svn_ra_get_dated_revision(svn_ra_session
  *
  * Use @a pool for memory allocation.
  *
- * @see svn_fs_change_rev_prop2(), svn_error_has_cause().
+ * @see svn_fs_change_rev_prop2(), svn_error_find_cause().
  *
  * @since New in 1.7.
  */

Modified: subversion/trunk/subversion/libsvn_ra/util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra/util.c?rev=1051702&r1=1051701&r2=1051702&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra/util.c (original)
+++ subversion/trunk/subversion/libsvn_ra/util.c Tue Dec 21 23:54:27 2010
@@ -78,7 +78,7 @@ svn_ra__assert_mergeinfo_capable_server(
  */
 static svn_boolean_t is_atomicity_error(svn_error_t *err)
 {
-  return svn_error_has_cause(err, SVN_ERR_FS_PROP_BASEVALUE_MISMATCH);
+  return svn_error_find_cause(err, SVN_ERR_FS_PROP_BASEVALUE_MISMATCH);
 }
 
 svn_error_t *

Modified: subversion/trunk/subversion/libsvn_subr/error.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/error.c?rev=1051702&r1=1051701&r2=1051702&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/error.c (original)
+++ subversion/trunk/subversion/libsvn_subr/error.c Tue Dec 21 23:54:27 2010
@@ -269,16 +269,16 @@ svn_error_root_cause(svn_error_t *err)
   return err;
 }
 
-svn_boolean_t
-svn_error_has_cause(svn_error_t *err, apr_status_t apr_err)
+svn_error_t *
+svn_error_find_cause(svn_error_t *err, apr_status_t apr_err)
 {
   svn_error_t *child;
 
   for (child = err; child; child = child->child)
     if (child->apr_err == apr_err)
-      return TRUE;
+      return child;
 
-  return FALSE;
+  return SVN_NO_ERROR;
 }
 
 svn_error_t *

Modified: subversion/trunk/subversion/tests/cmdline/atomic-ra-revprop-change.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/atomic-ra-revprop-change.c?rev=1051702&r1=1051701&r2=1051702&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/atomic-ra-revprop-change.c (original)
+++ subversion/trunk/subversion/tests/cmdline/atomic-ra-revprop-change.c Tue Dec 21 23:54:27 2010
@@ -164,7 +164,7 @@ change_rev_prop(const char *url,
                                     &old_value, propval, pool);
 
       if (want_error && err
-          && svn_error_has_cause(err, SVN_ERR_FS_PROP_BASEVALUE_MISMATCH))
+          && svn_error_find_cause(err, SVN_ERR_FS_PROP_BASEVALUE_MISMATCH))
         {
           /* Expectation was matched.  Get out. */
           svn_error_clear(err);