projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
fix tests
[m6w6/ext-http]
/
php_http_querystring.c
diff --git
a/php_http_querystring.c
b/php_http_querystring.c
index bd04f5092f9b233a9a53851f75858d4d668c8362..83ce01b9ddbb91322e1acd1fbbf857ff8b6300ac 100644
(file)
--- a/
php_http_querystring.c
+++ b/
php_http_querystring.c
@@
-592,16
+592,21
@@
ZEND_END_ARG_INFO();
PHP_METHOD(HttpQueryString, offsetSet)
{
zend_string *offset;
PHP_METHOD(HttpQueryString, offsetSet)
{
zend_string *offset;
- zval *value, param;
+ zval *value, param
, znull
;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Sz", &offset, &value)) {
return;
}
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Sz", &offset, &value)) {
return;
}
- array_init(¶m);
+ array_init_size(¶m, 1);
+ /* unset first */
+ ZVAL_NULL(&znull);
+ zend_symtable_update(Z_ARRVAL(param), offset, &znull);
+ php_http_querystring_set(getThis(), ¶m, QS_MERGE);
+ /* then update, else QS_MERGE would merge sub-arrrays */
Z_TRY_ADDREF_P(value);
zend_symtable_update(Z_ARRVAL(param), offset, value);
Z_TRY_ADDREF_P(value);
zend_symtable_update(Z_ARRVAL(param), offset, value);
- php_http_querystring_set(getThis(), ¶m,
0
);
+ php_http_querystring_set(getThis(), ¶m,
QS_MERGE
);
zval_ptr_dtor(¶m);
}
zval_ptr_dtor(¶m);
}