scottmac Sat Mar 8 04:18:30 2008 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/sqlite sqlite.c
Log:
MFB: Fixed bug #42203 (Clear SQLite result sets before closing database.)
http://cvs.php.net/viewvc.cgi/php-src/ext/sqlite/sqlite.c?r1=1.166.2.13.2.9.2.3&r2=1.166.2.13.2.9.2.4&diff_format=u
Index: php-src/ext/sqlite/sqlite.c
diff -u php-src/ext/sqlite/sqlite.c:1.166.2.13.2.9.2.3
php-src/ext/sqlite/sqlite.c:1.166.2.13.2.9.2.4
--- php-src/ext/sqlite/sqlite.c:1.166.2.13.2.9.2.3 Mon Dec 31 07:17:14 2007
+++ php-src/ext/sqlite/sqlite.c Sat Mar 8 04:18:29 2008
@@ -17,7 +17,7 @@
| Marcus Boerger <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: sqlite.c,v 1.166.2.13.2.9.2.3 2007/12/31 07:17:14 sebastian Exp $
+ $Id: sqlite.c,v 1.166.2.13.2.9.2.4 2008/03/08 04:18:29 scottmac Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -403,6 +403,17 @@
efree(res);
}
+static int _clean_unfinished_results(zend_rsrc_list_entry *le, void *db
TSRMLS_DC)
+{
+ if (Z_TYPE_P(le) == le_sqlite_result) {
+ struct php_sqlite_result *res = (struct php_sqlite_result
*)le->ptr;
+ if (res->db->rsrc_id == ((struct php_sqlite_db*)db)->rsrc_id) {
+ real_result_dtor(res TSRMLS_CC);
+ }
+ }
+ return 0;
+}
+
static ZEND_RSRC_DTOR_FUNC(php_sqlite_result_dtor)
{
struct php_sqlite_result *res = (struct php_sqlite_result *)rsrc->ptr;
@@ -1128,7 +1139,7 @@
{
php_info_print_table_start();
php_info_print_table_header(2, "SQLite support", "enabled");
- php_info_print_table_row(2, "PECL Module version",
PHP_SQLITE_MODULE_VERSION " $Id: sqlite.c,v 1.166.2.13.2.9.2.3 2007/12/31
07:17:14 sebastian Exp $");
+ php_info_print_table_row(2, "PECL Module version",
PHP_SQLITE_MODULE_VERSION " $Id: sqlite.c,v 1.166.2.13.2.9.2.4 2008/03/08
04:18:29 scottmac Exp $");
php_info_print_table_row(2, "SQLite Library", sqlite_libversion());
php_info_print_table_row(2, "SQLite Encoding", sqlite_libencoding());
php_info_print_table_end();
@@ -1423,6 +1434,10 @@
DB_FROM_ZVAL(db, &zdb);
}
+ zend_hash_apply_with_argument(&EG(regular_list),
+ (apply_func_arg_t) _clean_unfinished_results,
+ db TSRMLS_CC);
+
zend_list_delete(Z_RESVAL_P(zdb));
}
/* }}} */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php