static PHP_METHOD(HttpMessageParser, stream) { php_http_message_parser_object_t *parser_obj; zend_error_handling zeh; zval *zmsg, *zstream; php_stream *s; zend_long flags; 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); zend_restore_error_handling(&zeh); parser_obj = PHP_HTTP_OBJ(NULL, getThis()); RETVAL_LONG(php_http_message_parser_parse_stream(parser_obj->parser, &parser_obj->buffer, s, flags, &parser_obj->parser->message)); ZVAL_DEREF(zmsg); zval_dtor(zmsg); ZVAL_NULL(zmsg); if (parser_obj->parser->message) { php_http_message_t *msg_cpy = php_http_message_copy(parser_obj->parser->message, NULL); php_http_message_object_t *msg_obj = php_http_message_object_new_ex(php_http_message_class_entry, msg_cpy); ZVAL_OBJ(zmsg, &msg_obj->zo); } }
PHP_METHOD(Type, dump) { zval *zoutput = NULL; php_jit_type_t *ptype; php_stream *pstream = NULL; JIT_WIN32_NOT_IMPLEMENTED(); if (php_jit_parameters("|r", &zoutput) != SUCCESS) { php_jit_exception("unexpected parameters, expected ([resource output = STDOUT])"); return; } ptype = PHP_JIT_FETCH_TYPE(getThis()); if (!zoutput) { jit_dump_type(stdout, ptype->type); return; } php_stream_from_zval(pstream, zoutput); if (php_stream_can_cast(pstream, PHP_STREAM_AS_STDIO|PHP_STREAM_CAST_TRY_HARD) == SUCCESS) { FILE *stdio; if (php_stream_cast(pstream, PHP_STREAM_AS_STDIO, (void**)&stdio, 0) == SUCCESS) { jit_dump_type(stdio, ptype->type); } } }