cvs: php4(PHP_4_3) /ext/interbase interbase.c
| From: | Daniela Mariaschi | Date: | Mon, 05 May 2003 22:45:32 +0000 |
| Subject: | cvs: php4(PHP_4_3) /ext/interbase interbase.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-20721@lists.php.net to get a copy of this message | ||
daniela Mon May 5 18:45:32 2003 EDT
Modified files: (Branch: PHP_4_3)
/php4/ext/interbase interbase.c
Log:
MFH
Index: php4/ext/interbase/interbase.c
diff -u php4/ext/interbase/interbase.c:1.91.2.4 php4/ext/interbase/interbase.c:1.91.2.5
--- php4/ext/interbase/interbase.c:1.91.2.4 Sat Mar 15 19:38:51 2003
+++ php4/ext/interbase/interbase.c Mon May 5 18:45:32 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: interbase.c,v 1.91.2.4 2003/03/16 00:38:51 sniper Exp $ */
+/* $Id: interbase.c,v 1.91.2.5 2003/05/05 22:45:32 daniela Exp $ */
/* TODO: Arrays, roles?
@@ -384,21 +384,14 @@
/* {{{ _php_ibase_free_result() */
static void _php_ibase_free_result(zend_rsrc_list_entry *rsrc TSRMLS_DC)
{
- char tr_items[] = {isc_info_tra_id };
- char tmp[32]; /* should be enough as on the Api doc */
-
ibase_result *ib_result = (ibase_result *)rsrc->ptr;
- IBDEBUG("Freeing result...");
+ IBDEBUG("Freeing result by dtor...");
if (ib_result){
_php_ibase_free_xsqlda(ib_result->out_sqlda);
- isc_transaction_info(IB_STATUS, &ib_result->trans,sizeof(tr_items), tr_items, sizeof(tmp),
tmp );
- /* we have a transaction still open and we really want to drop the statement ? */
- if ( !(IB_STATUS[0] && IB_STATUS[1]) && ib_result->drop_stmt &&
ib_result->stmt ) {
- IBDEBUG("Dropping statement handle (free_result)...");
- if (isc_dsql_free_statement(IB_STATUS, &ib_result->stmt, DSQL_drop)) {
- _php_ibase_error(TSRMLS_C);
- }
+ if (ib_result->drop_stmt && ib_result->stmt) {
+ IBDEBUG("Dropping statement handle (free_result dtor)...");
+ isc_dsql_free_statement(IB_STATUS, &ib_result->stmt, DSQL_drop);
} else {
/* Shouldn't be here unless query was select and had parameter
placeholders, in which case ibase_execute handles this???
@@ -422,8 +415,6 @@
/* {{{ _php_ibase_free_query() */
static void _php_ibase_free_query(ibase_query *ib_query)
{
- char tr_items[] = {isc_info_tra_id };
- char tmp[32] ; /* ...should be enough as on the Api doc */
TSRMLS_FETCH();
IBDEBUG("Freeing query...");
@@ -434,9 +425,7 @@
if (ib_query->out_sqlda) {
efree(ib_query->out_sqlda);
}
- isc_transaction_info(IB_STATUS, &ib_query->trans,sizeof(tr_items), tr_items, sizeof(tmp),
tmp );
- /* we have the trans still open and a statement to drop? */
- if ( !(IB_STATUS[0] && IB_STATUS[1]) && ib_query->stmt) {
+ if (ib_query->stmt) {
IBDEBUG("Dropping statement handle (free_query)...");
if (isc_dsql_free_statement(IB_STATUS, &ib_query->stmt, DSQL_drop)){
_php_ibase_error(TSRMLS_C);
@@ -453,12 +442,33 @@
}
/* }}} */
+/* {{{ php_ibase_free_query_rsrc() */
static void php_ibase_free_query_rsrc(zend_rsrc_list_entry *rsrc TSRMLS_DC)
{
- ibase_query *query = (ibase_query *)rsrc->ptr;
+ ibase_query *ib_query = (ibase_query *)rsrc->ptr;
- _php_ibase_free_query(query);
+ IBDEBUG("Freeing query by dtor...");
+ if (ib_query) {
+ if (ib_query->in_sqlda) {
+ efree(ib_query->in_sqlda);
+ }
+ if (ib_query->out_sqlda) {
+ efree(ib_query->out_sqlda);
+ }
+ if (ib_query->stmt) {
+ IBDEBUG("Dropping statement handle (free_query dtor)...");
+ isc_dsql_free_statement(IB_STATUS, &ib_query->stmt, DSQL_drop);
+ }
+ if (ib_query->in_array) {
+ efree(ib_query->in_array);
+ }
+ if (ib_query->out_array) {
+ efree(ib_query->out_array);
+ }
+ efree(ib_query);
+ }
}
+/* }}} */
/* {{{ _php_ibase_free_blob() */
static void _php_ibase_free_blob(zend_rsrc_list_entry *rsrc TSRMLS_DC)
@@ -609,7 +619,7 @@
php_info_print_table_start();
php_info_print_table_row(2, "Interbase Support", "enabled");
- php_info_print_table_row(2, "Revision", "$Revision: 1.91.2.4 $");
+ php_info_print_table_row(2, "Revision", "$Revision: 1.91.2.5 $");
#ifdef COMPILE_DL_INTERBASE
php_info_print_table_row(2, "Dynamic Module", "yes");
#endif