convert_to_explicit_type(&tmp, type);
RETVAL_ZVAL(&tmp, 0, 0);
} else {
- RETVAL_ZVAL_FAST(arrval);
+ RETVAL_ZVAL(arrval, 1, 0);
}
if (del) {
zval_ptr_dtor(&delarr);
}
} else if(defval) {
- RETURN_ZVAL_FAST(defval);
+ RETURN_ZVAL(defval, 1, 0);
}
}
opts.val = vsepp;
opts.flags = PHP_HTTP_PARAMS_QUERY;
- if (SUCCESS == php_http_ini_entry(ZEND_STRL("arg_separator.input"), &asi_str, &asi_len, 0 TSRMLS_CC) && asi_len) {
+ if (SUCCESS == php_http_ini_entry(ZEND_STRL("arg_separator.input"), &asi_str, &asi_len, 0) && asi_len) {
zval arr;
array_init_size(&arr, asi_len);
zval *params = NULL;
zend_error_handling zeh;
- php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|z", ¶ms), invalid_arg, return);
+ php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "|z", ¶ms), invalid_arg, return);
zend_replace_error_handling(EH_THROW, php_http_exception_bad_querystring_class_entry, &zeh);
php_http_querystring_set(getThis(), params, 0);
zend_string_release(zs);
if (Z_TYPE_P(instance) == IS_OBJECT) {
- RETVAL_ZVAL_FAST(instance);
+ RETVAL_ZVAL(instance, 1, 0);
} else if ((_GET = php_http_env_get_superglobal(ZEND_STRL("_GET")))) {
ZVAL_OBJ(return_value, php_http_querystring_object_new(php_http_querystring_class_entry));
}
zqa = zend_read_property(php_http_querystring_class_entry, getThis(), ZEND_STRL("queryArray"), 0, &zqa_tmp);
- RETURN_ZVAL_FAST(zqa);
+ RETURN_ZVAL(zqa, 1, 0);
}
ZEND_BEGIN_ARG_INFO_EX(ai_HttpQueryString_get, 0, 0, 0)
);
php_http_querystring_set(getThis(), &na, 0);
- RETVAL_ZVAL_FAST(getThis());
+ RETVAL_ZVAL(getThis(), 1, 0);
zval_ptr_dtor(&na);
}
if (Z_TYPE_P(qa) == IS_ARRAY) {
if ((value = zend_symtable_find(Z_ARRVAL_P(qa), offset))) {
- RETVAL_ZVAL_FAST(value);
+ RETVAL_ZVAL(value, 1, 0);
}
}
}
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)) {
+ if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS(), "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);
- php_http_querystring_set(getThis(), ¶m, 0);
+ php_http_querystring_set(getThis(), ¶m, QS_MERGE);
zval_ptr_dtor(¶m);
}
zend_string *offset;
zval param, znull;
- if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &offset)) {
+ if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS(), "S", &offset)) {
return;
}