X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmodule.c;h=c369dc604f896d6f71f1f118df27812354efc42f;hb=2d34b0c215608bc3eae007ce5f4e80eae3c1e147;hp=9de278f96cf8ca66c0d2a3de5f71b53128559770;hpb=09529efcde471127419e141807b83b37077003a0;p=m6w6%2Fext-psi diff --git a/src/module.c b/src/module.c index 9de278f..c369dc6 100644 --- a/src/module.c +++ b/src/module.c @@ -166,19 +166,18 @@ static PHP_FUNCTION(psi_dump) { php_stream *s; zval *r = NULL; - int fd = STDOUT_FILENO; + struct psi_dump dump = {.fun = (psi_dump_cb) php_stream_printf}; if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS(), "|r!", &r)) { return; } if (r) { php_stream_from_zval(s, r); - - if (SUCCESS != php_stream_cast(s, PHP_STREAM_AS_FD | PHP_STREAM_CAST_INTERNAL, (void **)&fd, 1)) { - RETURN_FALSE; - } + dump.ctx.hn = s; + } else { + dump.ctx.hn = php_stream_open_wrapper("php://output", "w", REPORT_ERRORS, NULL); } - psi_context_dump(PSI_G(context), fd); + psi_context_dump(&dump, PSI_G(context)); } ZEND_BEGIN_ARG_INFO_EX(ai_psi_validate, 0, 0, 1) @@ -217,7 +216,7 @@ static PHP_FUNCTION(psi_validate) psi_parser_parse(&P, I); psi_data_ctor(&D, P.error, P.flags); psi_validate_scope_ctor(&S); - S.defs = &P.preproc->defs; + S.cpp = P.preproc; RETVAL_BOOL(psi_validate(&S, &D, PSI_DATA(&P))); @@ -269,7 +268,7 @@ static PHP_FUNCTION(psi_validate_string) psi_parser_parse(&P, I); psi_data_ctor(&D, P.error, P.flags); psi_validate_scope_ctor(&S); - S.defs = &P.preproc->defs; + S.cpp = P.preproc; RETVAL_BOOL(psi_validate(&S, &D, PSI_DATA(&P))); @@ -286,6 +285,7 @@ static PHP_FUNCTION(psi_validate_string) } PHP_MINIT_FUNCTION(psi_cpp); +PHP_MINIT_FUNCTION(psi_builtin); PHP_MINIT_FUNCTION(psi_context); static PHP_MINIT_FUNCTION(psi) { @@ -305,6 +305,9 @@ static PHP_MINIT_FUNCTION(psi) psi_object_handlers.free_obj = psi_object_free; psi_object_handlers.clone_obj = NULL; + if (SUCCESS != PHP_MINIT(psi_builtin)(type, module_number)) { + return FAILURE; + } if (SUCCESS != PHP_MINIT(psi_cpp)(type, module_number)) { return FAILURE; } @@ -316,11 +319,13 @@ static PHP_MINIT_FUNCTION(psi) } PHP_MSHUTDOWN_FUNCTION(psi_cpp); +PHP_MSHUTDOWN_FUNCTION(psi_builtin); PHP_MSHUTDOWN_FUNCTION(psi_context); static PHP_MSHUTDOWN_FUNCTION(psi) { PHP_MSHUTDOWN(psi_context)(type, module_number); PHP_MSHUTDOWN(psi_cpp)(type, module_number); + PHP_MSHUTDOWN(psi_builtin)(type, module_number); UNREGISTER_INI_ENTRIES();