From 5e8e34bac84661ddb69d29f2ad760bb5e3819b8f Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Wed, 6 Jan 2010 18:58:16 +0000 Subject: Fixed bug #49560 (oci8: using LOBs causes slow PHP shutdown) - Improved descriptor refcounting to remove unneeded items sooner - Replaced n^2 list traversal during descriptor list destruction --- ext/oci8/oci8_interface.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'ext/oci8/oci8_interface.c') diff --git a/ext/oci8/oci8_interface.c b/ext/oci8/oci8_interface.c index 979ac0368c..b12c8dc3bc 100644 --- a/ext/oci8/oci8_interface.c +++ b/ext/oci8/oci8_interface.c @@ -1066,9 +1066,7 @@ PHP_FUNCTION(oci_rollback) PHP_OCI_ZVAL_TO_CONNECTION(z_connection, connection); if (connection->descriptors) { - zend_hash_destroy(connection->descriptors); - efree(connection->descriptors); - connection->descriptors = NULL; + php_oci_connection_descriptors_free(connection TSRMLS_CC); } if (php_oci_connection_rollback(connection TSRMLS_CC)) { @@ -1092,9 +1090,7 @@ PHP_FUNCTION(oci_commit) PHP_OCI_ZVAL_TO_CONNECTION(z_connection, connection); if (connection->descriptors) { - zend_hash_destroy(connection->descriptors); - efree(connection->descriptors); - connection->descriptors = NULL; + php_oci_connection_descriptors_free(connection TSRMLS_CC); } if (php_oci_connection_commit(connection TSRMLS_CC)) { -- cgit v1.2.1