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 2011/05/20 12:43:06 UTC
svn commit: r1125315 - in /subversion/trunk/subversion/libsvn_ra_neon:
options.c ra_neon.h util.c
Author: ivan
Date: Fri May 20 10:43:05 2011
New Revision: 1125315
URL: http://svn.apache.org/viewvc?rev=1125315&view=rev
Log:
ra_neon: Refactor and fix small memory leak.
* subversion/libsvn_ra_neon/ra_neon.h
* subversion/libsvn_ra_neon/util.c
(svn_ra_neon__uri_unparse): New wrapper around ne_uri_unparse().
* subversion/libsvn_ra_neon/options.c
(parse_capabilities): Use svn_ra_neon__uri_unparse().
Modified:
subversion/trunk/subversion/libsvn_ra_neon/options.c
subversion/trunk/subversion/libsvn_ra_neon/ra_neon.h
subversion/trunk/subversion/libsvn_ra_neon/util.c
Modified: subversion/trunk/subversion/libsvn_ra_neon/options.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_neon/options.c?rev=1125315&r1=1125314&r2=1125315&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_neon/options.c (original)
+++ subversion/trunk/subversion/libsvn_ra_neon/options.c Fri May 20 10:43:05 2011
@@ -225,13 +225,10 @@ parse_capabilities(ne_request *req,
}
if ((val = ne_get_response_header(req, SVN_DAV_ROOT_URI_HEADER)))
{
- ne_uri root = ras->root;
- char *root_uri;
+ ne_uri root_uri = ras->root;
- root.path = (char *)val;
- root_uri = ne_uri_unparse(&root);
- ras->repos_root = apr_pstrdup(ras->pool, root_uri);
- free(root_uri);
+ root_uri.path = (char *)val;
+ ras->repos_root = svn_ra_neon__uri_unparse(&root_uri, ras->pool);
}
/* HTTP v2 stuff */
Modified: subversion/trunk/subversion/libsvn_ra_neon/ra_neon.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_neon/ra_neon.h?rev=1125315&r1=1125314&r2=1125315&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_neon/ra_neon.h (original)
+++ subversion/trunk/subversion/libsvn_ra_neon/ra_neon.h Fri May 20 10:43:05 2011
@@ -1168,6 +1168,12 @@ svn_ra_neon__assemble_locktoken_body(svn
apr_pool_t *pool);
+/* Wrapper around ne_uri_unparse(). Turns a URI structure back into a string.
+ * The returned string is allocated in POOL. */
+const char *
+svn_ra_neon__uri_unparse(const ne_uri *uri,
+ apr_pool_t *pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/trunk/subversion/libsvn_ra_neon/util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_neon/util.c?rev=1125315&r1=1125314&r2=1125315&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_neon/util.c (original)
+++ subversion/trunk/subversion/libsvn_ra_neon/util.c Fri May 20 10:43:05 2011
@@ -1578,3 +1578,23 @@ svn_ra_neon__request_get_location(svn_ra
const char *val = ne_get_response_header(request->ne_req, "Location");
return val ? svn_urlpath__canonicalize(val, pool) : NULL;
}
+
+const char *
+svn_ra_neon__uri_unparse(const ne_uri *uri,
+ apr_pool_t *pool)
+{
+ char *unparsed_uri;
+ const char *result;
+
+ /* Unparse uri. */
+ unparsed_uri = ne_uri_unparse(uri);
+
+ /* Copy string to result pool. */
+ result = apr_pstrdup(pool, unparsed_uri);
+
+ /* Free neon's allocated copy. */
+ ne_free(unparsed_uri);
+
+ /* Return string allocated in result pool. */
+ return result;
+}