You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by iv...@apache.org on 2010/08/19 17:53:53 UTC
svn commit: r987200 - in /subversion/trunk/subversion/libsvn_ra_serf:
property.c ra_serf.h serf.c
Author: ivan
Date: Thu Aug 19 15:53:52 2010
New Revision: 987200
URL: http://svn.apache.org/viewvc?rev=987200&view=rev
Log:
Resolve error leak.
* subversion/libsvn_ra_serf/property.c
* subversion/libsvn_ra_serf/ra_serf.h
(svn_ra_serf__walk_all_paths): Change signature to return svn_error_t
and handle error from dirent walker callback.
* subversion/libsvn_ra_serf/serf.c
(svn_ra_serf__get_dir): Handle error.
Modified:
subversion/trunk/subversion/libsvn_ra_serf/property.c
subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
subversion/trunk/subversion/libsvn_ra_serf/serf.c
Modified: subversion/trunk/subversion/libsvn_ra_serf/property.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/property.c?rev=987200&r1=987199&r2=987200&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/property.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/property.c Thu Aug 19 15:53:52 2010
@@ -788,7 +788,7 @@ svn_ra_serf__walk_all_props(apr_hash_t *
return SVN_NO_ERROR;
}
-void
+svn_error_t *
svn_ra_serf__walk_all_paths(apr_hash_t *props,
svn_revnum_t rev,
svn_ra_serf__path_rev_walker_t walker,
@@ -802,7 +802,7 @@ svn_ra_serf__walk_all_paths(apr_hash_t *
if (!ver_props)
{
- return;
+ return SVN_NO_ERROR;
}
for (path_hi = apr_hash_first(pool, ver_props); path_hi;
@@ -831,11 +831,13 @@ svn_ra_serf__walk_all_paths(apr_hash_t *
apr_hash_this(name_hi, &prop_name, &prop_len, &prop_val);
/* use a subpool? */
- walker(baton, path_name, path_len, ns_name, ns_len,
- prop_name, prop_len, prop_val, pool);
+ SVN_ERR(walker(baton, path_name, path_len, ns_name, ns_len,
+ prop_name, prop_len, prop_val, pool));
}
}
}
+
+ return SVN_NO_ERROR;
}
static svn_error_t *
Modified: subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h?rev=987200&r1=987199&r2=987200&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h Thu Aug 19 15:53:52 2010
@@ -994,7 +994,7 @@ typedef svn_error_t *
const char *name, apr_ssize_t name_len,
const svn_string_t *val,
apr_pool_t *pool);
-void
+svn_error_t *
svn_ra_serf__walk_all_paths(apr_hash_t *props,
svn_revnum_t rev,
svn_ra_serf__path_rev_walker_t walker,
Modified: subversion/trunk/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/serf.c?rev=987200&r1=987199&r2=987200&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/serf.c Thu Aug 19 15:53:52 2010
@@ -907,8 +907,8 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
dirent_walk.base_paths = apr_hash_make(pool);
dirent_walk.orig_path = svn_uri_canonicalize(path, pool);
- svn_ra_serf__walk_all_paths(props, revision, path_dirent_walker,
- &dirent_walk, pool);
+ SVN_ERR(svn_ra_serf__walk_all_paths(props, revision, path_dirent_walker,
+ &dirent_walk, pool));
*dirents = dirent_walk.base_paths;
}