summaryrefslogtreecommitdiff
path: root/ext/sqlite3/sqlite3.c
diff options
context:
space:
mode:
authorEtienne Kneuss <colder@php.net>2008-11-19 01:59:07 +0000
committerEtienne Kneuss <colder@php.net>2008-11-19 01:59:07 +0000
commit8251921307204713eda475c4f44dcab07c17fd50 (patch)
treeeafd5ac7db29b29d63286e05d7d71f86abf40adf /ext/sqlite3/sqlite3.c
parentd3b716d60467b73b58e956fe0b7ceab69a1d8c60 (diff)
downloadphp-git-8251921307204713eda475c4f44dcab07c17fd50.tar.gz
Fix #46241 (stacked error_handlers, error_handling in general)
Diffstat (limited to 'ext/sqlite3/sqlite3.c')
-rw-r--r--ext/sqlite3/sqlite3.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c
index 21f1870ca1..c617582395 100644
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@ -1207,12 +1207,14 @@ PHP_METHOD(sqlite3stmt, __construct)
zval *db_zval;
char *sql;
int sql_len, errcode;
+ zend_error_handling error_handling;
stmt_obj = (php_sqlite3_stmt *)zend_object_store_get_object(object TSRMLS_CC);
- zend_replace_error_handling(EH_THROW, NULL, NULL TSRMLS_CC);
+ zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os", &db_zval, php_sqlite3_sc_entry, &sql, &sql_len) == FAILURE) {
+ zend_restore_error_handling(&error_handling TSRMLS_CC);
return;
}
@@ -1220,6 +1222,7 @@ PHP_METHOD(sqlite3stmt, __construct)
SQLITE3_CHECK_INITIALIZED(db_obj->initialised, SQLite3)
+ zend_restore_error_handling(&error_handling TSRMLS_CC);
if (!sql_len) {
RETURN_FALSE;
}
@@ -1407,11 +1410,14 @@ PHP_METHOD(sqlite3result, __construct)
php_sqlite3_result *result_obj;
zval *object = getThis();
result_obj = (php_sqlite3_result *)zend_object_store_get_object(object TSRMLS_CC);
+ zend_error_handling error_handling;
- zend_replace_error_handling(EH_THROW, NULL, NULL TSRMLS_CC);
+ zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC);
php_error_docref(NULL TSRMLS_CC, E_WARNING, "SQLite3Result cannot be directly instantiated");
+ zend_restore_error_handling(&error_handling TSRMLS_CC);
+
}
/* }}} */