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