cvs: php-src(PHP_5_2) /ext/oci8 oci8.c oci8_statement.c php_oci8_int.h

From: Date: Wed, 31 Jan 2007 13:55:43 +0000
Subject: cvs: php-src(PHP_5_2) /ext/oci8 oci8.c oci8_statement.c php_oci8_int.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-42917@lists.php.net to get a copy of this message
tony2001 Wed Jan 31 13:55:43 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/oci8 oci8.c oci8_statement.c php_oci8_int.h Log: MFH: fix segfault on rebindinging and rexecuting a statement with LOBs fix compile failure in ZTS mode when collections support is missing http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/oci8.c?r1=1.269.2.16.2.29&r2=1.269.2.16.2.30&diff_format=u Index: php-src/ext/oci8/oci8.c diff -u php-src/ext/oci8/oci8.c:1.269.2.16.2.29 php-src/ext/oci8/oci8.c:1.269.2.16.2.30 --- php-src/ext/oci8/oci8.c:1.269.2.16.2.29 Wed Jan 24 14:34:13 2007 +++ php-src/ext/oci8/oci8.c Wed Jan 31 13:55:43 2007 @@ -26,7 +26,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: oci8.c,v 1.269.2.16.2.29 2007/01/24 14:34:13 tony2001 Exp $ */ +/* $Id: oci8.c,v 1.269.2.16.2.30 2007/01/31 13:55:43 tony2001 Exp $ */ /* TODO * * file://localhost/www/docs/oci10/ociaahan.htm#423823 - implement lob_empty() with OCI_ATTR_LOBEMPTY @@ -89,7 +89,9 @@ static void php_oci_pconnection_list_dtor (zend_rsrc_list_entry * TSRMLS_DC); static void php_oci_statement_list_dtor (zend_rsrc_list_entry * TSRMLS_DC); static void php_oci_descriptor_list_dtor (zend_rsrc_list_entry * TSRMLS_DC); +#ifdef PHP_OCI8_HAVE_COLLECTIONS static void php_oci_collection_list_dtor (zend_rsrc_list_entry * TSRMLS_DC); +#endif static int php_oci_persistent_helper(zend_rsrc_list_entry *le TSRMLS_DC); #ifdef ZTS @@ -646,7 +648,9 @@ { #ifdef ZTS zend_hash_apply_with_argument(&EG(regular_list), (apply_func_arg_t) php_oci_list_helper, (void *)le_descriptor TSRMLS_CC); +#ifdef PHP_OCI8_HAVE_COLLECTIONS zend_hash_apply_with_argument(&EG(regular_list), (apply_func_arg_t) php_oci_list_helper, (void *)le_collection TSRMLS_CC); +#endif while (OCI_G(num_statements)) { zend_hash_apply_with_argument(&EG(regular_list), (apply_func_arg_t) php_oci_list_helper, (void *)le_statement TSRMLS_CC); } @@ -670,7 +674,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "OCI8 Support", "enabled"); php_info_print_table_row(2, "Version", "1.2.3"); - php_info_print_table_row(2, "Revision", "$Revision: 1.269.2.16.2.29 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.269.2.16.2.30 $"); sprintf(buf, "%ld", OCI_G(num_persistent)); php_info_print_table_row(2, "Active Persistent Connections", buf); @@ -742,6 +746,7 @@ php_oci_lob_free(descriptor TSRMLS_CC); } /* }}} */ +#ifdef PHP_OCI8_HAVE_COLLECTIONS /* {{{ php_oci_collection_list_dtor() Collection destructor */ static void php_oci_collection_list_dtor(zend_rsrc_list_entry *entry TSRMLS_DC) @@ -749,6 +754,7 @@ php_oci_collection *collection = (php_oci_collection *)entry->ptr; php_oci_collection_close(collection TSRMLS_CC); } /* }}} */ +#endif /* }}} */ http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/oci8_statement.c?r1=1.7.2.14.2.21&r2=1.7.2.14.2.22&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.21 php-src/ext/oci8/oci8_statement.c:1.7.2.14.2.22 --- php-src/ext/oci8/oci8_statement.c:1.7.2.14.2.21 Thu Jan 25 09:31:23 2007 +++ php-src/ext/oci8/oci8_statement.c Wed Jan 31 13:55:43 2007 @@ -25,7 +25,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: oci8_statement.c,v 1.7.2.14.2.21 2007/01/25 09:31:23 tony2001 Exp $ */ +/* $Id: oci8_statement.c,v 1.7.2.14.2.22 2007/01/31 13:55:43 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -828,7 +828,9 @@ Bind zval to the given placeholder */ int php_oci_bind_by_name(php_oci_statement *statement, char *name, int name_len, zval* var, long maxlength, long type TSRMLS_DC) { +#ifdef PHP_OCI8_HAVE_COLLECTIONS php_oci_collection *bind_collection = NULL; +#endif php_oci_descriptor *bind_descriptor = NULL; php_oci_statement *bind_statement = NULL; dvoid *oci_desc = NULL; @@ -1095,7 +1097,17 @@ return retval; } - if ((Z_TYPE_P(val) == IS_OBJECT) || (Z_TYPE_P(val) == IS_RESOURCE)) { + if (Z_TYPE_P(val) == IS_RESOURCE) { + retval = OCI_CONTINUE; + } else if (Z_TYPE_P(val) == IS_OBJECT) { + if (!phpbind->descriptor) { + return OCI_ERROR; + } + *alenpp = &phpbind->dummy_len; + *bufpp = phpbind->descriptor; + *piecep = OCI_ONE_PIECE; + *rcodepp = &phpbind->retcode; + *indpp = &phpbind->indicator; retval = OCI_CONTINUE; } else { convert_to_string(val); http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/php_oci8_int.h?r1=1.11.2.6.2.13&r2=1.11.2.6.2.14&diff_format=u Index: php-src/ext/oci8/php_oci8_int.h diff -u php-src/ext/oci8/php_oci8_int.h:1.11.2.6.2.13 php-src/ext/oci8/php_oci8_int.h:1.11.2.6.2.14 --- php-src/ext/oci8/php_oci8_int.h:1.11.2.6.2.13 Thu Jan 11 11:27:52 2007 +++ php-src/ext/oci8/php_oci8_int.h Wed Jan 31 13:55:43 2007 @@ -25,7 +25,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_oci8_int.h,v 1.11.2.6.2.13 2007/01/11 11:27:52 tony2001 Exp $ */ +/* $Id: php_oci8_int.h,v 1.11.2.6.2.14 2007/01/31 13:55:43 tony2001 Exp $ */ #if HAVE_OCI8 # ifndef PHP_OCI8_INT_H @@ -190,6 +190,7 @@ } array; sb2 indicator; /* -1 means NULL */ ub2 retcode; /* */ + ub4 dummy_len; /* a dummy var to store alenpp value in bind OUT callback */ } php_oci_bind; /* }}} */ typedef struct { /* php_oci_out_column {{{ */

« previous php.cvs (#42917) next »