Author: gstein
Date: Thu Jun 14 09:28:53 2012
New Revision: 1350158

URL: http://svn.apache.org/viewvc?rev=1350158&view=rev
Log:
Implement the attribute gathering function in the XML v2 parsing code.

* subversion/libsvn_ra_serf/xml.c:
  (svn_ra_serf__xml_gather_since): implement

Modified:
    subversion/trunk/subversion/libsvn_ra_serf/xml.c

Modified: subversion/trunk/subversion/libsvn_ra_serf/xml.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/xml.c?rev=1350158&r1=1350157&r2=1350158&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/xml.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/xml.c Thu Jun 14 09:28:53 2012
@@ -483,12 +483,35 @@ svn_ra_serf__xml_gather_since(svn_ra_ser
                               int stop_state)
 {
   apr_hash_t *data;
+  apr_pool_t *pool;
 
   ensure_pool(xes);
+  pool = xes->state_pool;
 
-  data = apr_hash_make(xes->state_pool);
+  data = apr_hash_make(pool);
 
-  /* ### gather data  */
+  for (; xes != NULL; xes = xes->prev)
+    {
+      if (xes->attrs != NULL)
+        {
+          apr_hash_index_t *hi;
+
+          for (hi = apr_hash_first(pool, xes->attrs); hi;
+               hi = apr_hash_next(hi))
+            {
+              const void *key;
+              apr_ssize_t klen;
+              void *val;
+
+              /* Parent name/value lifetimes are at least as long as POOL.  */
+              apr_hash_this(hi, &key, &klen, &val);
+              apr_hash_set(data, key, klen, val);
+            }
+        }
+
+      if (xes->state == stop_state)
+        break;
+    }
 
   return data;
 }


Reply via email to