summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2006-02-02 11:42:12 +0000
committerDmitry Stogov <dmitry@php.net>2006-02-02 11:42:12 +0000
commitedbb4592909485dde44033781f3a5a4cbec32281 (patch)
tree089f289eef2960fd6f821c736a294c1743fdb3ca /ext/soap/php_encoding.c
parent690859c1fd2377e668a78bd4baef1e78c6949adc (diff)
downloadphp-git-edbb4592909485dde44033781f3a5a4cbec32281.tar.gz
Bug #36226 Inconsistent handling when passing potential arrays
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index 20e0dab5cf..f7907450d3 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -1157,6 +1157,14 @@ static void model_to_zval_object(zval *ret, sdlContentModelPtr model, xmlNodePtr
add_next_index_zval(array, val);
} while ((node = get_node(node->next, model->u.element->name)) != NULL);
val = array;
+ } else if ((SOAP_GLOBAL(features) & SOAP_SINGLE_ELEMENT_ARRAYS) &&
+ (model->max_occurs == -1 || model->max_occurs > 1)) {
+ zval *array;
+
+ MAKE_STD_ZVAL(array);
+ array_init(array);
+ add_next_index_zval(array, val);
+ val = array;
}
set_zval_property(ret, model->u.element->name, val TSRMLS_CC);
}