From 114dee054de7fd8b5921b406c5fb69e2cbade9d6 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Wed, 4 Aug 2021 10:02:39 +0200 Subject: [PATCH] fixup message/body serialization --- src/php_http_message.c | 2 ++ src/php_http_message_body.c | 3 +-- tests/message002.phpt | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/php_http_message.c b/src/php_http_message.c index d09b0b4..7287031 100644 --- a/src/php_http_message.c +++ b/src/php_http_message.c @@ -688,6 +688,8 @@ static void php_http_message_object_prophandler_set_parent_message(php_http_mess do { \ if (!obj->message) { \ obj->message = php_http_message_init(NULL, 0, NULL); \ + } else if (!obj->body && php_http_message_body_size(obj->message->body)) { \ + php_http_message_object_init_body_object(obj); \ } \ } while(0) diff --git a/src/php_http_message_body.c b/src/php_http_message_body.c index 72cfa4a..90714d9 100644 --- a/src/php_http_message_body.c +++ b/src/php_http_message_body.c @@ -714,7 +714,7 @@ PHP_METHOD(HttpMessageBody, __unserialize) if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "h", &arr)) { zval *zv = zend_hash_index_find(arr, 0); - if (0 && zv) { + if (zv) { zend_string *zs = zval_get_string(zv); php_stream *s = php_http_mem_stream_open(0, zs); php_http_message_body_object_t *obj = PHP_HTTP_OBJ(NULL, getThis()); @@ -742,7 +742,6 @@ PHP_METHOD(HttpMessageBody, __serialize) zs = php_http_message_body_to_string(obj->body, 0, 0); if (zs) { add_index_str(return_value, 0, zs); - zend_string_release(zs); } } diff --git a/tests/message002.phpt b/tests/message002.phpt index 573fdbd..da0b799 100644 --- a/tests/message002.phpt +++ b/tests/message002.phpt @@ -42,7 +42,8 @@ object(%s)#%d (13) { ["type":protected]=> int(1) ["body":protected]=> - NULL + object(http\Message\Body)#3 (0) { + } ["requestMethod":protected]=> string(4) "POST" ["requestUrl":protected]=> -- 2.30.2