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;
}