summaryrefslogtreecommitdiff
path: root/ext/sqlite3/sqlite3.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sqlite3/sqlite3.c')
-rw-r--r--ext/sqlite3/sqlite3.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c
index 2b11596e1b..cede5c82df 100644
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@ -1067,6 +1067,8 @@ PHP_METHOD(sqlite3stmt, execute)
zval *object = getThis();
int return_code = 0;
struct php_sqlite3_bound_param *param;
+ php_sqlite3_free_list *free_item;
+
stmt_obj = (php_sqlite3_stmt *)zend_object_store_get_object(object TSRMLS_CC);
if (zend_parse_parameters_none() == FAILURE) {
@@ -1140,13 +1142,16 @@ PHP_METHOD(sqlite3stmt, execute)
}
return_code = sqlite3_step(stmt_obj->stmt);
+ free_item = emalloc(sizeof(php_sqlite3_free_list));
+ free_item->stmt_obj = stmt_obj;
+ free_item->stmt_obj_zval = getThis();
+
+ zend_llist_add_element(&(stmt_obj->db_obj->free_list), &free_item);
switch (return_code) {
case SQLITE_ROW: /* Valid Row */
case SQLITE_DONE: /* Valid but no results */
{
- php_sqlite3_free_list *free_item;
-
sqlite3_reset(stmt_obj->stmt);
object_init_ex(return_value, php_sqlite3_result_entry);
result = (php_sqlite3_result *)zend_object_store_get_object(return_value TSRMLS_CC);
@@ -1158,12 +1163,6 @@ PHP_METHOD(sqlite3stmt, execute)
result->stmt_obj = stmt_obj;
result->stmt_obj_zval = getThis();
- free_item = emalloc(sizeof(php_sqlite3_free_list));
- free_item->stmt_obj = stmt_obj;
- free_item->stmt_obj_zval = getThis();
-
- zend_llist_add_element(&(stmt_obj->db_obj->free_list), &free_item);
-
break;
}
case SQLITE_ERROR: