From: Michael Wallner Date: Fri, 14 Oct 2005 10:51:57 +0000 (+0000) Subject: - don't destruct the zval right after construction in http_message_tostruct_recursive() X-Git-Tag: RELEASE_0_16_0~13 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=91c98198094e89bd2a0d0648b60dd2c361d3054b;p=m6w6%2Fext-http - don't destruct the zval right after construction in http_message_tostruct_recursive() - add test --- diff --git a/http_message_api.c b/http_message_api.c index dd597fc..d0c8f48 100644 --- a/http_message_api.c +++ b/http_message_api.c @@ -400,7 +400,6 @@ PHP_HTTP_API void _http_message_tostruct_recursive(http_message *msg, zval *obj } add_assoc_zval(&strct, "parentMessage", parent); http_message_tostruct_recursive(msg->parent, parent); - zval_ptr_dtor(&parent); } else { add_assoc_null(&strct, "parentMessage"); } diff --git a/tests/parse_message_004.phpt b/tests/parse_message_004.phpt new file mode 100644 index 0000000..a684e84 --- /dev/null +++ b/tests/parse_message_004.phpt @@ -0,0 +1,115 @@ +--TEST-- +http_parse_message() recursive +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +%sTEST +object(stdClass)#1 (7) { + ["type"]=> + int(2) + ["httpVersion"]=> + float(1.1) + ["responseCode"]=> + int(200) + ["responseStatus"]=> + string(2) "Ok" + ["headers"]=> + array(2) { + ["Server"]=> + string(9) "Funky/1.0" + ["Content-Length"]=> + string(2) "10" + } + ["body"]=> + string(10) "1234567890" + ["parentMessage"]=> + object(stdClass)#2 (7) { + ["type"]=> + int(1) + ["httpVersion"]=> + float(1.1) + ["requestMethod"]=> + string(3) "GET" + ["requestUri"]=> + string(1) "/" + ["headers"]=> + array(2) { + ["Host"]=> + string(15) "www.example.com" + ["Accept"]=> + string(3) "*/*" + } + ["body"]=> + string(0) "" + ["parentMessage"]=> + object(stdClass)#3 (7) { + ["type"]=> + int(2) + ["httpVersion"]=> + float(1.1) + ["responseCode"]=> + int(200) + ["responseStatus"]=> + string(2) "Ok" + ["headers"]=> + array(2) { + ["Server"]=> + string(9) "Funky/1.0" + ["Content-Length"]=> + string(2) "10" + } + ["body"]=> + string(0) "" + ["parentMessage"]=> + object(stdClass)#4 (7) { + ["type"]=> + int(1) + ["httpVersion"]=> + float(1.1) + ["requestMethod"]=> + string(4) "HEAD" + ["requestUri"]=> + string(1) "/" + ["headers"]=> + array(2) { + ["Host"]=> + string(15) "www.example.com" + ["Accept"]=> + string(3) "*/*" + } + ["body"]=> + string(0) "" + ["parentMessage"]=> + NULL + } + } + } +} +Done