summaryrefslogtreecommitdiff
path: root/ext/odbc/php_odbc.c
diff options
context:
space:
mode:
authorMáté Kocsis <kocsismate@woohoolabs.com>2020-08-24 20:42:29 +0200
committerMáté Kocsis <kocsismate@woohoolabs.com>2020-09-02 11:11:38 +0200
commit3e800e997bddc29cd28924c44846f7d2133a8933 (patch)
treee650686b950164531a16af82642dd52b826fb1d3 /ext/odbc/php_odbc.c
parentddc2a2d381843e086fc36388981d0b8ba1ea789d (diff)
downloadphp-git-3e800e997bddc29cd28924c44846f7d2133a8933.tar.gz
Move custom type checks to ZPP
Closes GH-6034
Diffstat (limited to 'ext/odbc/php_odbc.c')
-rw-r--r--ext/odbc/php_odbc.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c
index 7a4495f0d1..af62ecb29d 100644
--- a/ext/odbc/php_odbc.c
+++ b/ext/odbc/php_odbc.c
@@ -1736,31 +1736,31 @@ PHP_FUNCTION(odbc_fetch_row)
PHP_FUNCTION(odbc_result)
{
char *field;
- zend_string *field_str;
+ zend_string *field_str, *pv_field_str;
+ zend_long pv_field_long;
int field_ind;
SQLSMALLINT sql_c_type = SQL_C_CHAR;
odbc_result *result;
int i = 0;
RETCODE rc;
SQLLEN fieldsize;
- zval *pv_res, *pv_field;
+ zval *pv_res;
#ifdef HAVE_SQL_EXTENDED_FETCH
SQLULEN crow;
SQLUSMALLINT RowStatus[1];
#endif
- field_ind = -1;
- field = NULL;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "rz", &pv_res, &pv_field) == FAILURE) {
- RETURN_THROWS();
- }
+ ZEND_PARSE_PARAMETERS_START(2, 2)
+ Z_PARAM_RESOURCE(pv_res)
+ Z_PARAM_STR_OR_LONG(pv_field_str, pv_field_long)
+ ZEND_PARSE_PARAMETERS_END();
- if (Z_TYPE_P(pv_field) == IS_STRING) {
- field = Z_STRVAL_P(pv_field);
+ if (pv_field_str) {
+ field = ZSTR_VAL(pv_field_str);
+ field_ind = -1;
} else {
- convert_to_long_ex(pv_field);
- field_ind = Z_LVAL_P(pv_field) - 1;
+ field = NULL;
+ field_ind = (int) pv_field_long - 1;
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {