X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_message_parser.c;h=535a2b3849fd1b103aead321333e4104a00ba25c;hp=7bf9a164f5a14cad90d42617cfb114fc7455ab80;hb=cd3cad9da098f0dae2997dd6a52a907bfaaf6041;hpb=e438aa9ce944f8c8f175554d9aa66d152a47f780 diff --git a/php_http_message_parser.c b/php_http_message_parser.c index 7bf9a16..535a2b3 100644 --- a/php_http_message_parser.c +++ b/php_http_message_parser.c @@ -59,19 +59,21 @@ php_http_message_parser_t *php_http_message_parser_init(php_http_message_parser_ php_http_message_parser_state_t php_http_message_parser_state_push(php_http_message_parser_t *parser, unsigned argc, ...) { - php_http_message_parser_state_t state; + php_http_message_parser_state_t state = PHP_HTTP_MESSAGE_PARSER_STATE_FAILURE; va_list va_args; unsigned i; - /* short circuit */ - ZEND_PTR_STACK_RESIZE_IF_NEEDED((&parser->stack), argc); + if (argc > 0) { + /* short circuit */ + ZEND_PTR_STACK_RESIZE_IF_NEEDED((&parser->stack), argc); - va_start(va_args, argc); - for (i = 0; i < argc; ++i) { - state = va_arg(va_args, php_http_message_parser_state_t); - zend_ptr_stack_push(&parser->stack, (void *) state); + va_start(va_args, argc); + for (i = 0; i < argc; ++i) { + state = va_arg(va_args, php_http_message_parser_state_t); + zend_ptr_stack_push(&parser->stack, (void *) state); + } + va_end(va_args); } - va_end(va_args); return state; } @@ -594,7 +596,7 @@ static PHP_METHOD(HttpMessageParser, parse) size_t data_len; zend_long flags; - php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "slz", &data_str, &data_len, &flags, &zmsg), invalid_arg, return); + php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "slz", &data_str, &data_len, &flags, &zmsg), invalid_arg, return); parser_obj = PHP_HTTP_OBJ(NULL, getThis()); php_http_buffer_append(&parser_obj->buffer, data_str, data_len); @@ -623,7 +625,7 @@ static PHP_METHOD(HttpMessageParser, stream) php_stream *s; zend_long flags; - php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlz", &zstream, &flags, &zmsg), invalid_arg, return); + php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "rlz", &zstream, &flags, &zmsg), invalid_arg, return); zend_replace_error_handling(EH_THROW, php_http_exception_unexpected_val_class_entry, &zeh); php_stream_from_zval(s, zstream);