void php_http_message_parser_dtor(php_http_message_parser_t *parser)
{
	php_http_header_parser_dtor(&parser->header);
	zend_ptr_stack_destroy(&parser->stack);
	php_http_message_free(&parser->message);
	if (parser->dechunk) {
		php_http_encoding_stream_free(&parser->dechunk);
	}
	if (parser->inflate) {
		php_http_encoding_stream_free(&parser->inflate);
	}
}
Пример #2
0
/* {{{ META_API void meta_scanner_free(meta_scanner **)
 * Free everything this scanner holds. Held zvals are just rc--'ed */
META_API void meta_scanner_free(meta_scanner **scanner) {
    int elems;
    TOKEN* token;
    /* TODO inspect (*scanner)->buffer->max for real inputs - how big does the stack grow? */
    elems = zend_ptr_stack_num_elements((*scanner)->buffer);
    while(elems--) {
        token = zend_ptr_stack_pop((*scanner)->buffer);
		meta_token_dtor(&token, META_TOK_CHAIN_FREESELF | META_TOK_CHAIN_FREESELF_DEEP, NULL, NULL);
    }
    zend_ptr_stack_destroy((*scanner)->buffer);
    efree((*scanner)->buffer);
	zval_ptr_dtor(&(*scanner)->rawsrc);
    efree(*scanner);
	*scanner=NULL;
}