summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2013-03-14 14:19:41 +0400
committerDmitry Stogov <dmitry@zend.com>2013-03-14 14:19:41 +0400
commitdd1c358d1bf8fd492e39d46f93878d47a3b6d257 (patch)
tree5c8923188500c17d085a289a0c70f610f521b9cb /ext/soap/php_encoding.c
parentd77c865aff794826f6286c078268db6a005fea33 (diff)
parentc09652c2899dd4149fe3187b5b50f6b3c54da384 (diff)
downloadphp-git-dd1c358d1bf8fd492e39d46f93878d47a3b6d257.tar.gz
Merge branch 'PHP-5.5' of git.php.net:php-src into PHP-5.5
* 'PHP-5.5' of git.php.net:php-src: fix the fix fix for bug #63530 mysqlnd_stmt::bind_one_parameter uses wrong alloc for stmt->param_bind Forgot to remove some now unused variables Add support for non-scalar Iterator keys in foreach fixed headers order - Updated to version 2013.2 (2013b) fixed the test Fixed bug #64370 (microtime(true) less than $_SERVER['REQUEST_TIME_FLOAT']) Disable zend_always_inline in debug build
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index 897956d91b..5cec3e558e 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -2313,10 +2313,6 @@ static xmlNodePtr to_xml_array(encodeTypePtr type, zval *data, int style, xmlNod
zend_object_iterator *iter;
zend_class_entry *ce = Z_OBJCE_P(data);
zval **val;
- char *str_key;
- uint str_key_len;
- ulong int_key;
- int key_type;
ALLOC_ZVAL(array_copy);
INIT_PZVAL(array_copy);
@@ -2345,19 +2341,14 @@ static xmlNodePtr to_xml_array(encodeTypePtr type, zval *data, int style, xmlNod
goto iterator_done;
}
if (iter->funcs->get_current_key) {
- key_type = iter->funcs->get_current_key(iter, &str_key, &str_key_len, &int_key TSRMLS_CC);
+ zval key;
+ iter->funcs->get_current_key(iter, &key TSRMLS_CC);
if (EG(exception)) {
goto iterator_done;
}
- switch(key_type) {
- case HASH_KEY_IS_STRING:
- add_assoc_zval_ex(array_copy, str_key, str_key_len, *val);
- efree(str_key);
- break;
- case HASH_KEY_IS_LONG:
- add_index_zval(array_copy, int_key, *val);
- break;
- }
+ array_set_zval_key(Z_ARRVAL_P(array_copy), &key, *val);
+ zval_ptr_dtor(val);
+ zval_dtor(&key);
} else {
add_next_index_zval(array_copy, *val);
}