fix leaks; all tests pass
[m6w6/ext-http] / php_http_env_response.c
index 557bb1088b07849d6ac56855d62fb1db77dc05ed..2b633c1871ca1bd0de1dd565fc12f2cbbc73cae5 100644 (file)
@@ -1158,7 +1158,9 @@ static PHP_METHOD(HttpEnvResponse, __invoke)
 
                PHP_HTTP_ENV_RESPONSE_OBJECT_INIT(obj);
 
-               php_http_message_object_init_body_object(obj);
+               if (!obj->body) {
+                       php_http_message_object_init_body_object(obj);
+               }
 
                if (ob_flags & PHP_OUTPUT_HANDLER_CLEAN) {
                        php_stream_truncate_set_size(php_http_message_body_stream(obj->message->body), 0);
@@ -1337,7 +1339,7 @@ static PHP_METHOD(HttpEnvResponse, setCookie)
        case IS_ARRAY:
                list = php_http_cookie_list_from_struct(NULL, zcookie_new);
                zcookie_new = &tmp;
-               ZVAL_OBJECT(zcookie_new, &php_http_cookie_object_new_ex(php_http_cookie_class_entry, list)->zo, 1);
+               ZVAL_OBJECT(zcookie_new, &php_http_cookie_object_new_ex(php_http_cookie_class_entry, list)->zo, 0);
                break;
 
        default:
@@ -1345,7 +1347,7 @@ static PHP_METHOD(HttpEnvResponse, setCookie)
                list = php_http_cookie_list_parse(NULL, zs->val, zs->len, 0, NULL);
                zend_string_release(zs);
                zcookie_new = &tmp;
-               ZVAL_OBJECT(zcookie_new, &php_http_cookie_object_new_ex(php_http_cookie_class_entry, list)->zo, 1);
+               ZVAL_OBJECT(zcookie_new, &php_http_cookie_object_new_ex(php_http_cookie_class_entry, list)->zo, 0);
        }
        zend_restore_error_handling(&zeh);