You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2010/05/25 00:57:59 UTC

svn commit: r947851 - in /subversion/trunk/subversion/libsvn_wc: diff.c workqueue.c

Author: julianfoad
Date: Mon May 24 22:57:59 2010
New Revision: 947851

URL: http://svn.apache.org/viewvc?rev=947851&view=rev
Log:
Fix an error leak introduced in r947718.  Also add error tracing to a
similar fix that was committed in r947829.

* subversion/libsvn_wc/diff.c
  (get_nearest_pristine_text_as_file): If the error isn't the expected one,
    return it.

* subversion/libsvn_wc/workqueue.c
  (verify_pristine_present): Use 'svn_error_return()'.

Modified:
    subversion/trunk/subversion/libsvn_wc/diff.c
    subversion/trunk/subversion/libsvn_wc/workqueue.c

Modified: subversion/trunk/subversion/libsvn_wc/diff.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/diff.c?rev=947851&r1=947850&r2=947851&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/diff.c (original)
+++ subversion/trunk/subversion/libsvn_wc/diff.c Mon May 24 22:57:59 2010
@@ -161,11 +161,12 @@ get_nearest_pristine_text_as_file(const 
                                        result_pool, scratch_pool);
 
   if (err && err->apr_err == SVN_ERR_WC_PATH_UNEXPECTED_STATUS)
-    {
-      svn_error_clear(err);
-      err = svn_wc__text_revert_path_to_read(result_abspath, db, local_abspath,
-                                             result_pool);
-    }
+    svn_error_clear(err);
+  else
+    return svn_error_return(err);
+
+  err = svn_wc__text_revert_path_to_read(result_abspath, db, local_abspath,
+                                         result_pool);
 
   /* If there is no revert base to diff either, don't attempt to diff it.
      ### This is a band-aid.
@@ -177,11 +178,11 @@ get_nearest_pristine_text_as_file(const 
      ### base text from the pristine store anyway and use tempfiles (or
      ### streams, hopefully) for diffing, so this hack will just go away. */
   if (err && err->apr_err == SVN_ERR_WC_PATH_UNEXPECTED_STATUS)
-    {
-      svn_error_clear(err);
-      *result_abspath = NULL;
-    }
+    svn_error_clear(err);
+  else
+    return svn_error_return(err);
 
+  *result_abspath = NULL;
   return SVN_NO_ERROR;
 }
 

Modified: subversion/trunk/subversion/libsvn_wc/workqueue.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/workqueue.c?rev=947851&r1=947850&r2=947851&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/trunk/subversion/libsvn_wc/workqueue.c Mon May 24 22:57:59 2010
@@ -496,14 +496,14 @@ verify_pristine_present(svn_wc__db_t *db
   if (err && err->apr_err == SVN_ERR_WC_PATH_UNEXPECTED_STATUS)
     svn_error_clear(err);
   else
-    return err;
+    return svn_error_return(err);
 
   err = svn_wc__text_revert_path_to_read(&base_abspath, db, local_abspath,
                                          scratch_pool);
   if (err && err->apr_err == SVN_ERR_WC_PATH_UNEXPECTED_STATUS)
     svn_error_clear(err);
   else
-    return err;
+    return svn_error_return(err);
 
   /* A real file must have either a regular or a revert text-base.
      If it has neither, we could be looking at the situation described