You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by je...@apache.org on 2012/06/15 10:54:16 UTC
svn commit: r1350540 - in /subversion/trunk/subversion/libsvn_ra_serf:
ra_serf.h util.c xml.c
Author: jerenkrantz
Date: Fri Jun 15 08:54:15 2012
New Revision: 1350540
URL: http://svn.apache.org/viewvc?rev=1350540&view=rev
Log:
Further reduce memory pressure by forcing the xmlctx's scratch_pool to be
cleared as soon as we are done with the XML parser.
* subversion/libsvn_ra_serf/xml.c
(svn_ra_serf__xml_context_destroy): Implement.
* subversion/libsvn_ra_serf/ra_serf.h
(svn_ra_serf__xml_context_destroy): Declare.
* subversion/libsvn_ra_serf/util.c
(expat_response_handler): Explicitly destroy the xmlctx too.
Modified:
subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
subversion/trunk/subversion/libsvn_ra_serf/util.c
subversion/trunk/subversion/libsvn_ra_serf/xml.c
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=1350540&r1=1350539&r2=1350540&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h Fri Jun 15 08:54:15 2012
@@ -738,6 +738,10 @@ svn_ra_serf__xml_context_create(
void *baton,
apr_pool_t *result_pool);
+/* Destroy all subpools for this structure. */
+void
+svn_ra_serf__xml_context_destroy(
+ svn_ra_serf__xml_context_t *xmlctx);
/* Construct a handler with the response function/baton set up to parse
a response body using the given XML context. The handler and its
Modified: subversion/trunk/subversion/libsvn_ra_serf/util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/util.c?rev=1350540&r1=1350539&r2=1350540&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/util.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/util.c Fri Jun 15 08:54:15 2012
@@ -2439,6 +2439,7 @@ expat_response_handler(serf_request_t *r
return status. We just don't care. */
(void) XML_Parse(ectx->parser, NULL, 0, 1 /* isFinal */);
+ svn_ra_serf__xml_context_destroy(ectx->xmlctx);
apr_pool_cleanup_run(ectx->cleanup_pool, &ectx->parser,
xml_parser_cleanup);
Modified: subversion/trunk/subversion/libsvn_ra_serf/xml.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/xml.c?rev=1350540&r1=1350539&r2=1350540&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/xml.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/xml.c Fri Jun 15 08:54:15 2012
@@ -443,6 +443,12 @@ lazy_create_pool(void *baton)
return xes->state_pool;
}
+void
+svn_ra_serf__xml_context_destroy(
+ svn_ra_serf__xml_context_t *xmlctx)
+{
+ svn_pool_destroy(xmlctx->scratch_pool);
+}
svn_ra_serf__xml_context_t *
svn_ra_serf__xml_context_create(