@@ -35,7 +35,7 @@ ZEND_DECLARE_MODULE_GLOBALS(sqlite3)
35
35
static PHP_GINIT_FUNCTION (sqlite3 );
36
36
static int php_sqlite3_authorizer (void * autharg , int action , const char * arg1 , const char * arg2 , const char * arg3 , const char * arg4 );
37
37
static void sqlite3_param_dtor (zval * data );
38
- static int php_sqlite3_compare_stmt_zval_free (php_sqlite3_stmt * * stmt_obj_ptr , zval * statement );
38
+ static int php_sqlite3_compare_stmt_free (php_sqlite3_stmt * * stmt_obj_ptr , sqlite3_stmt * statement );
39
39
40
40
#define SQLITE3_CHECK_INITIALIZED (db_obj , member , class_name ) \
41
41
if (!(db_obj) || !(member)) { \
@@ -525,7 +525,7 @@ PHP_METHOD(SQLite3, prepare)
525
525
object_init_ex (return_value , php_sqlite3_stmt_entry );
526
526
stmt_obj = Z_SQLITE3_STMT_P (return_value );
527
527
stmt_obj -> db_obj = db_obj ;
528
- ZVAL_OBJ_COPY ( & stmt_obj -> db_obj_zval , Z_OBJ_P ( object ) );
528
+ Z_ADDREF_P ( object );
529
529
530
530
errcode = sqlite3_prepare_v2 (db_obj -> db , ZSTR_VAL (sql ), ZSTR_LEN (sql ), & (stmt_obj -> stmt ), NULL );
531
531
if (errcode != SQLITE_OK ) {
@@ -577,7 +577,7 @@ PHP_METHOD(SQLite3, query)
577
577
object_init_ex (& stmt , php_sqlite3_stmt_entry );
578
578
stmt_obj = Z_SQLITE3_STMT_P (& stmt );
579
579
stmt_obj -> db_obj = db_obj ;
580
- ZVAL_OBJ_COPY ( & stmt_obj -> db_obj_zval , Z_OBJ_P ( object ) );
580
+ Z_ADDREF_P ( object );
581
581
582
582
return_code = sqlite3_prepare_v2 (db_obj -> db , ZSTR_VAL (sql ), ZSTR_LEN (sql ), & (stmt_obj -> stmt ), NULL );
583
583
if (return_code != SQLITE_OK ) {
@@ -594,7 +594,6 @@ PHP_METHOD(SQLite3, query)
594
594
result -> stmt_obj = stmt_obj ;
595
595
result -> column_names = NULL ;
596
596
result -> column_count = -1 ;
597
- ZVAL_OBJ (& result -> stmt_obj_zval , Z_OBJ (stmt ));
598
597
599
598
return_code = sqlite3_step (result -> stmt_obj -> stmt );
600
599
@@ -1407,7 +1406,7 @@ PHP_METHOD(SQLite3Stmt, close)
1407
1406
1408
1407
SQLITE3_CHECK_INITIALIZED (stmt_obj -> db_obj , stmt_obj -> initialised , SQLite3 );
1409
1408
1410
- zend_llist_del_element (& (stmt_obj -> db_obj -> free_list ), object , (int (* )(void * , void * )) php_sqlite3_compare_stmt_zval_free );
1409
+ zend_llist_del_element (& (stmt_obj -> db_obj -> free_list ), stmt_obj , (int (* )(void * , void * )) php_sqlite3_compare_stmt_free );
1411
1410
1412
1411
RETURN_TRUE ;
1413
1412
}
@@ -1788,7 +1787,7 @@ PHP_METHOD(SQLite3Stmt, execute)
1788
1787
result -> stmt_obj = stmt_obj ;
1789
1788
result -> column_names = NULL ;
1790
1789
result -> column_count = -1 ;
1791
- ZVAL_OBJ_COPY ( & result -> stmt_obj_zval , Z_OBJ_P ( object ) );
1790
+ Z_ADDREF_P ( object );
1792
1791
1793
1792
break ;
1794
1793
}
@@ -1832,7 +1831,7 @@ PHP_METHOD(SQLite3Stmt, __construct)
1832
1831
}
1833
1832
1834
1833
stmt_obj -> db_obj = db_obj ;
1835
- ZVAL_OBJ_COPY ( & stmt_obj -> db_obj_zval , Z_OBJ_P ( db_zval ) );
1834
+ Z_ADDREF_P ( db_zval );
1836
1835
1837
1836
errcode = sqlite3_prepare_v2 (db_obj -> db , ZSTR_VAL (sql ), ZSTR_LEN (sql ), & (stmt_obj -> stmt ), NULL );
1838
1837
if (errcode != SQLITE_OK ) {
@@ -2029,8 +2028,8 @@ PHP_METHOD(SQLite3Result, finalize)
2029
2028
2030
2029
/* We need to finalize an internal statement */
2031
2030
if (result_obj -> is_prepared_statement == 0 ) {
2032
- zend_llist_del_element (& (result_obj -> db_obj -> free_list ), & result_obj -> stmt_obj_zval ,
2033
- (int (* )(void * , void * )) php_sqlite3_compare_stmt_zval_free );
2031
+ zend_llist_del_element (& (result_obj -> db_obj -> free_list ), & result_obj -> stmt_obj ,
2032
+ (int (* )(void * , void * )) php_sqlite3_compare_stmt_free );
2034
2033
} else {
2035
2034
sqlite3_reset (result_obj -> stmt_obj -> stmt );
2036
2035
}
@@ -2145,12 +2144,6 @@ static void php_sqlite3_free_list_dtor(void **item)
2145
2144
}
2146
2145
/* }}} */
2147
2146
2148
- static int php_sqlite3_compare_stmt_zval_free (php_sqlite3_stmt * * stmt_obj_ptr , zval * statement ) /* {{{ */
2149
- {
2150
- return ((* stmt_obj_ptr )-> initialised && Z_OBJ_P (statement ) == & (* stmt_obj_ptr )-> zo );
2151
- }
2152
- /* }}} */
2153
-
2154
2147
static int php_sqlite3_compare_stmt_free (php_sqlite3_stmt * * stmt_obj_ptr , sqlite3_stmt * statement ) /* {{{ */
2155
2148
{
2156
2149
return ((* stmt_obj_ptr )-> initialised && statement == (* stmt_obj_ptr )-> stmt );
@@ -2269,8 +2262,8 @@ static void php_sqlite3_stmt_object_free_storage(zend_object *object) /* {{{ */
2269
2262
(int (* )(void * , void * )) php_sqlite3_compare_stmt_free );
2270
2263
}
2271
2264
2272
- if (! Z_ISUNDEF ( intern -> db_obj_zval ) ) {
2273
- zval_ptr_dtor (& intern -> db_obj_zval );
2265
+ if (intern -> db_obj ) {
2266
+ OBJ_RELEASE (& intern -> db_obj -> zo );
2274
2267
}
2275
2268
2276
2269
zend_object_std_dtor (& intern -> zo );
@@ -2283,12 +2276,12 @@ static void php_sqlite3_result_object_free_storage(zend_object *object) /* {{{ *
2283
2276
2284
2277
sqlite3result_clear_column_names_cache (intern );
2285
2278
2286
- if (! Z_ISNULL ( intern -> stmt_obj_zval ) ) {
2287
- if (intern -> stmt_obj && intern -> stmt_obj -> initialised ) {
2279
+ if (intern -> stmt_obj ) {
2280
+ if (intern -> stmt_obj -> initialised ) {
2288
2281
sqlite3_reset (intern -> stmt_obj -> stmt );
2289
2282
}
2290
2283
2291
- zval_ptr_dtor (& intern -> stmt_obj_zval );
2284
+ OBJ_RELEASE (& intern -> stmt_obj -> zo );
2292
2285
}
2293
2286
2294
2287
zend_object_std_dtor (& intern -> zo );
0 commit comments