RFT: add pool argument to rev_proplist
From: Matt Kraai <kraai_at_alumni.cmu.edu>
Date: 2003-03-10 22:57:54 CET
Howdy,
Would someone please test the following with ra_dav?
Matt
-- Oink! Partially fix issue #1169: * subversion/include/svn_ra.h (svn_ra_plugin_t): Add pool argument to rev_proplist. * subversion/libsvn_ra_dav/ra_dav.h (svn_ra_dav__rev_proplist): Add pool argument. * subversion/libsvn_ra_dav/fetch.c (svn_ra_dav__rev_proplist): Likewise. * subversion/libsvn_ra_local/ra_plugin.c (svn_ra_local__rev_proplist): Likewise. * subversion/libsvn_ra_svn/client.c (ra_svn_rev_proplist): Likewise. * subversion/libsvn_client/prop_commands.c (svn_client_revprop_list): Pass pool to ra->rev_proplist. Index: subversion/include/svn_ra.h =================================================================== --- subversion/include/svn_ra.h (revision 5265) +++ subversion/include/svn_ra.h (working copy) @@ -313,10 +313,13 @@ * Set @a *props to the list of unversioned properties attached to * revision @a rev. The hash maps (<tt>const char *</tt>) names to * (<tt>@c svn_string_t *</tt>) values. + * + * Use @a pool for memory allocation. */ svn_error_t *(*rev_proplist) (void *session_baton, svn_revnum_t rev, - apr_hash_t **props); + apr_hash_t **props, + apr_pool_t *pool); /** Set @a *value to the value of unversioned property @a name attached to * revision @a rev. Index: subversion/libsvn_ra_local/ra_plugin.c =================================================================== --- subversion/libsvn_ra_local/ra_plugin.c (revision 5265) +++ subversion/libsvn_ra_local/ra_plugin.c (working copy) @@ -327,12 +327,13 @@ static svn_error_t * svn_ra_local__rev_proplist (void *session_baton, svn_revnum_t rev, - apr_hash_t **props) + apr_hash_t **props, + apr_pool_t *pool) { svn_ra_local__session_baton_t *baton = (svn_ra_local__session_baton_t *) session_baton; - SVN_ERR (svn_fs_revision_proplist (props, baton->fs, rev, baton->pool)); + SVN_ERR (svn_fs_revision_proplist (props, baton->fs, rev, pool)); return SVN_NO_ERROR; } Index: subversion/libsvn_client/prop_commands.c =================================================================== --- subversion/libsvn_client/prop_commands.c (revision 5265) +++ subversion/libsvn_client/prop_commands.c (working copy) @@ -970,7 +970,7 @@ (set_rev, ra_lib, session, revision, NULL, pool)); /* The actual RA call. */ - SVN_ERR (ra_lib->rev_proplist (session, *set_rev, &proplist)); + SVN_ERR (ra_lib->rev_proplist (session, *set_rev, &proplist, pool)); for (hi = apr_hash_first (pool, proplist); hi; hi = apr_hash_next (hi)) { Index: subversion/libsvn_ra_svn/client.c =================================================================== --- subversion/libsvn_ra_svn/client.c (revision 5265) +++ subversion/libsvn_ra_svn/client.c (working copy) @@ -440,10 +440,9 @@ } static svn_error_t *ra_svn_rev_proplist(void *sess, svn_revnum_t rev, - apr_hash_t **props) + apr_hash_t **props, apr_pool_t *pool) { svn_ra_svn_conn_t *conn = sess; - apr_pool_t *pool = conn->pool; apr_array_header_t *proplist; SVN_ERR(svn_ra_svn_write_cmd(conn, pool, "rev-proplist", "r", rev)); Index: subversion/libsvn_ra_dav/ra_dav.h =================================================================== --- subversion/libsvn_ra_dav/ra_dav.h (revision 5265) +++ subversion/libsvn_ra_dav/ra_dav.h (working copy) @@ -87,7 +87,8 @@ svn_error_t *svn_ra_dav__rev_proplist (void *session_baton, svn_revnum_t rev, - apr_hash_t **props); + apr_hash_t **props, + apr_pool_t *pool); svn_error_t *svn_ra_dav__rev_prop (void *session_baton, svn_revnum_t rev, Index: subversion/libsvn_ra_dav/fetch.c =================================================================== --- subversion/libsvn_ra_dav/fetch.c (revision 5265) +++ subversion/libsvn_ra_dav/fetch.c (working copy) @@ -1582,12 +1582,13 @@ svn_error_t *svn_ra_dav__rev_proplist (void *session_baton, svn_revnum_t rev, - apr_hash_t **props) + apr_hash_t **props, + apr_pool_t *pool) { svn_ra_session_t *ras = session_baton; svn_ra_dav_resource_t *baseline; - *props = apr_hash_make (ras->pool); + *props = apr_hash_make (pool); /* Main objective: do a PROPFIND (allprops) on a baseline object */ SVN_ERR (svn_ra_dav__get_baseline_props(NULL, &baseline, @@ -1595,13 +1596,13 @@ ras->url, rev, NULL, /* get ALL properties */ - ras->pool)); + pool)); /* Build a new property hash, based on the one in the baseline resource. In particular, convert the xml-property-namespaces into ones that the client understands. Strip away the DAV: liveprops as well. */ - SVN_ERR (filter_props (*props, baseline, FALSE, ras->pool)); + SVN_ERR (filter_props (*props, baseline, FALSE, pool)); return SVN_NO_ERROR; } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org For additional commands, e-mail: dev-help@subversion.tigris.orgReceived on Mon Mar 10 22:57:55 2003 |
This is an archived mail posted to the Subversion Dev mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.