}
if (msg_obj->message) {
php_http_message_body_free(&msg_obj->message->body);
- msg_obj->message->body = php_http_message_body_init(&body_obj->body, NULL);
+ msg_obj->message->body = body_obj->body;
} else {
- msg_obj->message = php_http_message_init(NULL, 0, php_http_message_body_init(&body_obj->body, NULL));
+ msg_obj->message = php_http_message_init(NULL, 0, body_obj->body);
}
+ php_http_message_body_addref(body_obj->body);
msg_obj->body = body_obj;
return SUCCESS;
o->message = NULL;
}
if (o->parent) {
+ if (GC_REFCOUNT(&o->parent->zo) == 1) {
+ zend_objects_store_del(&o->parent->zo);
+ }
zend_objects_store_del(&o->parent->zo);
o->parent = NULL;
}
if (o->body) {
+ if (GC_REFCOUNT(&o->body->zo) == 1) {
+ zend_objects_store_del(&o->body->zo);
+ }
zend_objects_store_del(&o->body->zo);
o->body = NULL;
}