summaryrefslogtreecommitdiff
path: root/ext/standard/http.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-03-26 18:07:31 +0400
committerDmitry Stogov <dmitry@zend.com>2014-03-26 18:07:31 +0400
commit887189ca31eeac5f1f7dbcaf54405de0dc432f2d (patch)
tree8536fb10f33fe14c6b9357a587374a276f509399 /ext/standard/http.c
parente82f112468bc8c46e5cb006850634aa780e8e68d (diff)
downloadphp-git-887189ca31eeac5f1f7dbcaf54405de0dc432f2d.tar.gz
Refactored IS_INDIRECT usage for CV and object properties to support HashTable resizing
Diffstat (limited to 'ext/standard/http.c')
-rw-r--r--ext/standard/http.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/standard/http.c b/ext/standard/http.c
index 62437f82d6..fc5727d7ce 100644
--- a/ext/standard/http.c
+++ b/ext/standard/http.c
@@ -82,6 +82,12 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr,
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error traversing form data array");
return FAILURE;
}
+ if (Z_TYPE_P(zdata) == IS_INDIRECT) {
+ zdata = Z_INDIRECT_P(zdata);
+ if (Z_TYPE_P(zdata) == IS_UNDEF) {
+ continue;
+ }
+ }
if (Z_TYPE_P(zdata) == IS_ARRAY || Z_TYPE_P(zdata) == IS_OBJECT) {
if (key_type == HASH_KEY_IS_STRING) {
zend_string *ekey;