Browse Source

Fix bug #24575 (sqlite_popen did not request a new resource id when persistent

handles were re-used within a request).
PEAR_1_4DEV
Wez Furlong 23 years ago
parent
commit
e17043c248
  1. 9
      ext/sqlite/sqlite.c

9
ext/sqlite/sqlite.c

@ -314,7 +314,14 @@ static void php_sqlite_callback_dtor(void *pDest)
php_sqlite_callback_invalidator(funcs TSRMLS_CC);
}
}
static ZEND_RSRC_DTOR_FUNC(php_sqlite_pdb_invalidator)
{
struct php_sqlite_db *db = (struct php_sqlite_db*)rsrc->ptr;
db->rsrc_id = FAILURE;
}
static ZEND_RSRC_DTOR_FUNC(php_sqlite_db_dtor)
{
if (rsrc->ptr) {
@ -889,7 +896,7 @@ PHP_MINIT_FUNCTION(sqlite)
#endif
le_sqlite_db = zend_register_list_destructors_ex(php_sqlite_db_dtor, NULL, "sqlite database", module_number);
le_sqlite_pdb = zend_register_list_destructors_ex(NULL, php_sqlite_db_dtor, "sqlite database (persistent)", module_number);
le_sqlite_pdb = zend_register_list_destructors_ex(php_sqlite_pdb_invalidator, php_sqlite_db_dtor, "sqlite database (persistent)", module_number);
le_sqlite_result = zend_register_list_destructors_ex(php_sqlite_result_dtor, NULL, "sqlite result", module_number);
REGISTER_LONG_CONSTANT("SQLITE_BOTH", PHPSQLITE_BOTH, CONST_CS|CONST_PERSISTENT);

Loading…
Cancel
Save