tony2001                Thu Jan 25 09:31:23 2007 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/oci8   oci8_statement.c 
  Log:
  PHP4 compatibility
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/oci8_statement.c?r1=1.7.2.14.2.20&r2=1.7.2.14.2.21&diff_format=u
Index: php-src/ext/oci8/oci8_statement.c
diff -u php-src/ext/oci8/oci8_statement.c:1.7.2.14.2.20 
php-src/ext/oci8/oci8_statement.c:1.7.2.14.2.21
--- php-src/ext/oci8/oci8_statement.c:1.7.2.14.2.20     Thu Jan 11 12:01:08 2007
+++ php-src/ext/oci8/oci8_statement.c   Thu Jan 25 09:31:23 2007
@@ -25,7 +25,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: oci8_statement.c,v 1.7.2.14.2.20 2007/01/11 12:01:08 tony2001 Exp $ */
+/* $Id: oci8_statement.c,v 1.7.2.14.2.21 2007/01/25 09:31:23 tony2001 Exp $ */
 
 
 #ifdef HAVE_CONFIG_H
@@ -1121,11 +1121,11 @@
  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 @@
                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;
 } /* }}} */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to