@@ -2245,6 +2245,18 @@ static void php_sqlite3_object_free_storage(zend_object *object) /* {{{ */
2245
2245
}
2246
2246
/* }}} */
2247
2247
2248
+ static void php_sqlite3_gc_buffer_add_fcc (zend_get_gc_buffer * gc_buffer , zend_fcall_info_cache * fcc )
2249
+ {
2250
+ if (ZEND_FCC_INITIALIZED (* fcc )) {
2251
+ if (fcc -> object ) {
2252
+ zend_get_gc_buffer_add_obj (gc_buffer , fcc -> object );
2253
+ }
2254
+ if (fcc -> closure ) {
2255
+ zend_get_gc_buffer_add_obj (gc_buffer , fcc -> closure );
2256
+ }
2257
+ }
2258
+ }
2259
+
2248
2260
static HashTable * php_sqlite3_get_gc (zend_object * object , zval * * table , int * n )
2249
2261
{
2250
2262
php_sqlite3_db_object * intern = php_sqlite3_db_from_obj (object );
@@ -2259,15 +2271,15 @@ static HashTable *php_sqlite3_get_gc(zend_object *object, zval **table, int *n)
2259
2271
2260
2272
php_sqlite3_func * func = intern -> funcs ;
2261
2273
while (func != NULL ) {
2262
- zend_get_gc_buffer_add_zval (gc_buffer , & func -> func );
2263
- zend_get_gc_buffer_add_zval (gc_buffer , & func -> step );
2264
- zend_get_gc_buffer_add_zval (gc_buffer , & func -> fini );
2274
+ php_sqlite3_gc_buffer_add_fcc (gc_buffer , & func -> func );
2275
+ php_sqlite3_gc_buffer_add_fcc (gc_buffer , & func -> step );
2276
+ php_sqlite3_gc_buffer_add_fcc (gc_buffer , & func -> fini );
2265
2277
func = func -> next ;
2266
2278
}
2267
2279
2268
2280
php_sqlite3_collation * collation = intern -> collations ;
2269
2281
while (collation != NULL ) {
2270
- zend_get_gc_buffer_add_zval (gc_buffer , & collation -> cmp_func );
2282
+ php_sqlite3_gc_buffer_add_fcc (gc_buffer , & collation -> cmp_func );
2271
2283
collation = collation -> next ;
2272
2284
}
2273
2285
0 commit comments