diff options
author | Dmitry Stogov <dmitry@php.net> | 2007-03-20 07:51:32 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2007-03-20 07:51:32 +0000 |
commit | ef06bfa3ec23b456dc57e47c6542988c44d8e958 (patch) | |
tree | 5eef81f2b8ccec4084c73612db38e3b13e835829 /ext/soap/php_encoding.c | |
parent | d514bf27a6b401fded29633a538642fed8b36f2c (diff) | |
download | php-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.c | 3 |
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; |