X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=php_http_message_body.c;h=1c540c77389dba84e58b1040128ae040579cfec8;hb=40a6a12edc42c8b830f7251b4b9eebef62f047fc;hp=f336f85c2fa1676973dab191cc3d9a5990263a5b;hpb=5ed9792021f1700c2b1e5682c43a0ccca9e97960;p=m6w6%2Fext-http diff --git a/php_http_message_body.c b/php_http_message_body.c index f336f85..1c540c7 100644 --- a/php_http_message_body.c +++ b/php_http_message_body.c @@ -45,14 +45,13 @@ php_http_message_body_t *php_http_message_body_init(php_http_message_body_t **bo body->refcount = 1; if (stream) { - php_stream_auto_cleanup(stream); body->res = stream->res; ++GC_REFCOUNT(body->res); } else { stream = php_stream_temp_create(TEMP_STREAM_DEFAULT, 0xffff); - php_stream_auto_cleanup(stream); body->res = stream->res; } + php_stream_auto_cleanup(stream); if (body_ptr) { *body_ptr = body; @@ -340,7 +339,7 @@ static ZEND_RESULT_CODE add_recursive_fields(php_http_message_body_t *body, cons if (!ZEND_HASH_GET_APPLY_COUNT(fields)) { ZEND_HASH_INC_APPLY_COUNT(fields); - ZEND_HASH_FOREACH_KEY_VAL(fields, key.h, key.key, val) + ZEND_HASH_FOREACH_KEY_VAL_IND(fields, key.h, key.key, val) { char *str = format_key(&key, name); @@ -378,7 +377,7 @@ static ZEND_RESULT_CODE add_recursive_files(php_http_message_body_t *body, const if (!ZEND_HASH_GET_APPLY_COUNT(files)) { ZEND_HASH_INC_APPLY_COUNT(files); - ZEND_HASH_FOREACH_KEY_VAL(files, key.h, key.key, val) + ZEND_HASH_FOREACH_KEY_VAL_IND(files, key.h, key.key, val) { if (Z_TYPE_P(val) == IS_ARRAY || Z_TYPE_P(val) == IS_OBJECT) { char *str = format_key(&key, name); @@ -555,7 +554,7 @@ php_http_message_body_object_t *php_http_message_body_object_new_ex(zend_class_e { php_http_message_body_object_t *o; - o = ecalloc(1, sizeof(php_http_message_body_object_t) + (ce->default_properties_count - 1) * sizeof(zval)); + o = ecalloc(1, sizeof(*o) + zend_object_properties_size(ce)); zend_object_std_init(&o->zo, php_http_message_body_class_entry); object_properties_init(&o->zo, ce);