X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_params.c;h=b51ab712657cab9e0fff62a8ca3d7ee982f2151c;hp=a30610d6bfaf7e1da8ac19bb236c468ca67288c8;hb=95433e1b55cd256df3fe3b6240ded359e8ba09a6;hpb=6116c2d8303b5301d927083af4dc763f952ab3ea diff --git a/php_http_params.c b/php_http_params.c index a30610d..b51ab71 100644 --- a/php_http_params.c +++ b/php_http_params.c @@ -315,7 +315,7 @@ static inline void sanitize_rfc5987(zval *zv, char **language, zend_bool *latin1 } } -static inline void sanitize_rfc5988(char *str, size_t len, zval *zv TSRMLS_DC) +static inline void sanitize_rfc5988(char *str, size_t len, zval *zv) { zend_string *zs = zend_string_init(str, len, 0); @@ -324,7 +324,7 @@ static inline void sanitize_rfc5988(char *str, size_t len, zval *zv TSRMLS_DC) zend_string_release(zs); } -static inline void prepare_rfc5988(zval *zv TSRMLS_DC) +static inline void prepare_rfc5988(zval *zv) { if (Z_TYPE_P(zv) != IS_STRING) { zval_dtor(zv); @@ -437,7 +437,7 @@ static void merge_param(HashTable *params, zval *zdata, zval **current_param, zv zval tmp; INIT_PZVAL_ARRAY(&tmp, params); fprintf(stderr, "params = "); - zend_print_zval_r(&tmp, 1 TSRMLS_CC); + zend_print_zval_r(&tmp, 1); fprintf(stderr, "\n"); } #endif @@ -488,10 +488,10 @@ static void merge_param(HashTable *params, zval *zdata, zval **current_param, zv while (Z_TYPE_P(zdata_ptr) == IS_ARRAY && (test_ptr = zend_hash_get_current_data(Z_ARRVAL_P(zdata_ptr)))) { if (Z_TYPE_P(test_ptr) == IS_ARRAY) { + zval *tmp_ptr = ptr; + /* now find key in ptr */ if (HASH_KEY_IS_STRING == zend_hash_get_current_key(Z_ARRVAL_P(zdata_ptr), &hkey.key, &hkey.h)) { - zval *tmp_ptr = ptr; - if ((ptr = zend_hash_find(Z_ARRVAL_P(ptr), hkey.key))) { zdata_ptr = test_ptr; } else { @@ -504,10 +504,12 @@ static void merge_param(HashTable *params, zval *zdata, zval **current_param, zv if ((ptr = zend_hash_index_find(Z_ARRVAL_P(ptr), hkey.h))) { zdata_ptr = test_ptr; } else if (hkey.h) { + ptr = tmp_ptr; Z_TRY_ADDREF_P(test_ptr); ptr = zend_hash_index_update(Z_ARRVAL_P(ptr), hkey.h, test_ptr); break; } else { + ptr = tmp_ptr; Z_TRY_ADDREF_P(test_ptr); ptr = zend_hash_next_index_insert(Z_ARRVAL_P(ptr), test_ptr); break; @@ -1111,7 +1113,7 @@ PHP_METHOD(HttpParams, toArray) return; } zparams = zend_read_property(php_http_params_class_entry, getThis(), ZEND_STRL("params"), 0, &zparams_tmp); - RETURN_ZVAL_FAST(zparams); + RETURN_ZVAL(zparams, 1, 0); } ZEND_BEGIN_ARG_INFO_EX(ai_HttpParams_toString, 0, 0, 0) @@ -1193,7 +1195,7 @@ PHP_METHOD(HttpParams, offsetGet) zparams = zend_read_property(php_http_params_class_entry, getThis(), ZEND_STRL("params"), 0, &zparams_tmp); if (Z_TYPE_P(zparams) == IS_ARRAY && (zparam = zend_symtable_find(Z_ARRVAL_P(zparams), name))) { - RETVAL_ZVAL_FAST(zparam); + RETVAL_ZVAL(zparam, 1, 0); } } @@ -1225,7 +1227,7 @@ PHP_METHOD(HttpParams, offsetSet) zend_string *name; zval zparams_tmp, *zparam, *zparams, *nvalue; - if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Sz", &name, &nvalue)) { + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS(), "Sz", &name, &nvalue)) { return; }