add stream support for http\Env\Response
[m6w6/ext-http] / php_http_message_body.c
index d094db62582e5e489d1e16f1c58f09d310b156d0..45fe95e9ef9d9e44e8a158a0f1b03564e2a2c7d3 100644 (file)
@@ -650,8 +650,9 @@ void php_http_message_body_object_free(void *object TSRMLS_DC)
 {
        php_http_message_body_object_t *obj = object;
 
-       php_http_message_body_free(&obj->body);
-
+       if (!obj->shared) {
+               php_http_message_body_free(&obj->body);
+       }
        zend_object_std_dtor((zend_object *) obj TSRMLS_CC);
        efree(obj);
 }
@@ -668,7 +669,7 @@ PHP_METHOD(HttpMessageBody, __construct)
                                php_stream_from_zval(stream, &zstream);
 
                                if (stream) {
-                                       if (obj->body) {
+                                       if (obj->body && !obj->shared) {
                                                php_http_message_body_dtor(obj->body);
                                        }
                                        obj->body = php_http_message_body_init(obj->body, stream TSRMLS_CC);