X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fphp_pq_params.c;h=7208550a999d77fa025a5e23236fd20e7bb001fb;hb=7acdd4b540f114ac8e8103df42633d5f741fb210;hp=4a45edea242fcabfd039f446a4828fa106af625d;hpb=420e6ed4b6b95cf25985aed5dc6ddec06e823e41;p=m6w6%2Fext-pq diff --git a/src/php_pq_params.c b/src/php_pq_params.c index 4a45ede..7208550 100644 --- a/src/php_pq_params.c +++ b/src/php_pq_params.c @@ -148,9 +148,12 @@ static int apply_to_param_from_array(void *ptr, void *arg_ptr TSRMLS_DC) } if (arg->zconv) { - zval *rv = NULL; + zval *ztype, *rv = NULL; - zend_call_method_with_1_params(arg->zconv, NULL, NULL, "converttostring", &rv, zcopy); + MAKE_STD_ZVAL(ztype); + ZVAL_LONG(ztype, arg->type); + zend_call_method_with_2_params(arg->zconv, NULL, NULL, "converttostring", &rv, zcopy, ztype); + zval_ptr_dtor(&ztype); convert_to_string(rv); zcopy = rv; goto append_string; @@ -256,9 +259,12 @@ static void php_pq_params_set_param(php_pq_params_t *p, unsigned index, zval **z TSRMLS_DF(p); if (type && SUCCESS == zend_hash_index_find(&p->type.conv, type, (void *) &zconv)) { - zval *rv = NULL; + zval *ztype, *rv = NULL; - zend_call_method_with_1_params(zconv, NULL, NULL, "converttostring", &rv, *zpp); + MAKE_STD_ZVAL(ztype); + ZVAL_LONG(ztype, type); + zend_call_method_with_2_params(zconv, NULL, NULL, "converttostring", &rv, *zpp, ztype); + zval_ptr_dtor(&ztype); convert_to_string(rv); p->param.strings[index] = Z_STRVAL_P(rv); zend_hash_next_index_insert(&p->param.dtor, (void *) &rv, sizeof(zval *), NULL);