From: Antony Dovgal Date: Thu, 25 Jan 2007 09:31:23 +0000 (+0000) Subject: PHP4 compatibility X-Git-Tag: RELEASE_1_2_3~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=de3c2038af4870a340c770c56511c4f239128999;p=php PHP4 compatibility --- diff --git a/ext/oci8/oci8_statement.c b/ext/oci8/oci8_statement.c index 8dbd6af45b..1b036e8924 100644 --- a/ext/oci8/oci8_statement.c +++ b/ext/oci8/oci8_statement.c @@ -1121,11 +1121,11 @@ sb4 php_oci_bind_out_callback( Helper function to get column by name and index */ php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS, int need_data) { - zval *z_statement, **column_index; + zval *z_statement, *column_index; php_oci_statement *statement; php_oci_out_column *column; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rZ", &z_statement, &column_index) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rz", &z_statement, &column_index) == FAILURE) { return NULL; } @@ -1139,19 +1139,25 @@ php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAME return NULL; } - if (Z_TYPE_PP(column_index) == IS_STRING) { - column = php_oci_statement_get_column(statement, -1, Z_STRVAL_PP(column_index), Z_STRLEN_PP(column_index) TSRMLS_CC); + if (Z_TYPE_P(column_index) == IS_STRING) { + column = php_oci_statement_get_column(statement, -1, Z_STRVAL_P(column_index), Z_STRLEN_P(column_index) TSRMLS_CC); if (!column) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid column name \"%s\"", Z_STRVAL_PP(column_index)); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid column name \"%s\"", Z_STRVAL_P(column_index)); return NULL; } } else { - convert_to_long_ex(column_index); - column = php_oci_statement_get_column(statement, Z_LVAL_PP(column_index), NULL, 0 TSRMLS_CC); + zval tmp; + /* NB: for PHP4 compat only, it should be using 'Z' instead */ + tmp = *column_index; + zval_copy_ctor(&tmp); + convert_to_long(&tmp); + column = php_oci_statement_get_column(statement, Z_LVAL(tmp), NULL, 0 TSRMLS_CC); if (!column) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid column index \"%ld\"", Z_LVAL_PP(column_index)); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid column index \"%ld\"", Z_LVAL(tmp)); + zval_dtor(&tmp); return NULL; } + zval_dtor(&tmp); } return column; } /* }}} */