summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2007-03-20 07:51:32 +0000
committerDmitry Stogov <dmitry@php.net>2007-03-20 07:51:32 +0000
commitef06bfa3ec23b456dc57e47c6542988c44d8e958 (patch)
tree5eef81f2b8ccec4084c73612db38e3b13e835829 /ext/soap/php_encoding.c
parentd514bf27a6b401fded29633a538642fed8b36f2c (diff)
downloadphp-git-ef06bfa3ec23b456dc57e47c6542988c44d8e958.tar.gz
Fixed bug #36226 (Inconsistent handling when passing nillable arrays)
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index 53b7fa1f3f..83dd51c645 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -1221,7 +1221,8 @@ 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) &&
+ } else if ((Z_TYPE_P(val) != IS_NULL || !model->u.element->nillable) &&
+ (SOAP_GLOBAL(features) & SOAP_SINGLE_ELEMENT_ARRAYS) &&
(model->max_occurs == -1 || model->max_occurs > 1)) {
zval *array;