diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2012-02-27 03:26:51 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2012-02-27 03:26:51 +0000 |
commit | a07d4945c1a301aeaf4b67411065b9adcfac1065 (patch) | |
tree | c605de13425e7ecdcd8ee4c941a8ce97a881731a /sca-cpp/trunk/kernel/element.hpp | |
parent | edc083d8056557814691d49d45b56f8244558bae (diff) |
Fix mapping between repeating XML elements, S-expression lists, and JSON array cells.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1294006 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/kernel/element.hpp')
-rw-r--r-- | sca-cpp/trunk/kernel/element.hpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sca-cpp/trunk/kernel/element.hpp b/sca-cpp/trunk/kernel/element.hpp index c69d3bbf07..27b5af8691 100644 --- a/sca-cpp/trunk/kernel/element.hpp +++ b/sca-cpp/trunk/kernel/element.hpp @@ -172,10 +172,10 @@ const list<value> elementToValueGroupValues(const value& v, const list<value>& l if (car<value>(car(l)) != car<value>(v)) return cons(v, l); if (!elementToValueIsList(cadr<value>(car(l)))) { - const value g = mklist<value>(car<value>(v), mklist<value>(cdr<value>(v), cdr<value>(car(l)))); + const value g = mklist<value>(car<value>(v), mklist<value>(isList(cadr<value>(v))? (value)cdr<value>(v) : cadr<value>(v), isList(cadr<value>(car(l)))? (value)cdr<value>(car(l)) : cadr<value>(car(l)))); return elementToValueGroupValues(g, cdr(l)); } - const value g = mklist<value>(car<value>(v), cons<value>(cdr<value>(v), (list<value>)cadr<value>(car(l)))); + const value g = mklist<value>(car<value>(v), cons<value>(isList(cadr<value>(v))? (value)cdr<value>(v) : cadr<value>(v), (list<value>)cadr<value>(car(l)))); return elementToValueGroupValues(g, cdr(l)); } |