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(