@@ -1270,8 +1270,39 @@ static HashTable *curl_get_gc(zend_object *object, zval **table, int *n)
1270
1270
{
1271
1271
php_curl * curl = curl_from_obj (object );
1272
1272
1273
- * table = & curl -> postfields ;
1274
- * n = 1 ;
1273
+ zend_get_gc_buffer * gc_buffer = zend_get_gc_buffer_create ();
1274
+
1275
+ zend_get_gc_buffer_add_zval (gc_buffer , & curl -> postfields );
1276
+ if (curl -> handlers ) {
1277
+ if (curl -> handlers -> read ) {
1278
+ zend_get_gc_buffer_add_zval (gc_buffer , & curl -> handlers -> read -> func_name );
1279
+ zend_get_gc_buffer_add_zval (gc_buffer , & curl -> handlers -> read -> stream );
1280
+ }
1281
+
1282
+ if (curl -> handlers -> write ) {
1283
+ zend_get_gc_buffer_add_zval (gc_buffer , & curl -> handlers -> write -> func_name );
1284
+ zend_get_gc_buffer_add_zval (gc_buffer , & curl -> handlers -> write -> stream );
1285
+ }
1286
+
1287
+ if (curl -> handlers -> write_header ) {
1288
+ zend_get_gc_buffer_add_zval (gc_buffer , & curl -> handlers -> write_header -> func_name );
1289
+ zend_get_gc_buffer_add_zval (gc_buffer , & curl -> handlers -> write_header -> stream );
1290
+ }
1291
+
1292
+ if (curl -> handlers -> progress ) {
1293
+ zend_get_gc_buffer_add_zval (gc_buffer , & curl -> handlers -> progress -> func_name );
1294
+ }
1295
+
1296
+ #if LIBCURL_VERSION_NUM >= 0x071500
1297
+ if (curl -> handlers -> fnmatch ) {
1298
+ zend_get_gc_buffer_add_zval (gc_buffer , & curl -> handlers -> fnmatch -> func_name );
1299
+ }
1300
+ #endif
1301
+
1302
+ zend_get_gc_buffer_add_zval (gc_buffer , & curl -> handlers -> std_err );
1303
+ }
1304
+
1305
+ zend_get_gc_buffer_use (gc_buffer , table , n );
1275
1306
1276
1307
return zend_std_get_properties (object );
1277
1308
}
0 commit comments