Jacek Caban : vbscript: Support calling VARIANT in interpreter.
Module: wine Branch: master Commit: 1ff55510d8fb112d735864db942e79a2d2ae0a57 URL: https://source.winehq.org/git/wine.git/?a=commit;h=1ff55510d8fb112d735864db9... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Mon Oct 28 18:40:36 2019 +0100 vbscript: Support calling VARIANT in interpreter. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/vbscript/interp.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/dlls/vbscript/interp.c b/dlls/vbscript/interp.c index 45f15933e6..11a2a77d82 100644 --- a/dlls/vbscript/interp.c +++ b/dlls/vbscript/interp.c @@ -653,14 +653,33 @@ static HRESULT interp_icallv(exec_ctx_t *ctx) static HRESULT interp_vcall(exec_ctx_t *ctx) { - FIXME("\n"); - return E_NOTIMPL; + const unsigned arg_cnt = ctx->instr->arg1.uint; + VARIANT res, *v; + HRESULT hres; + + TRACE("\n"); + + v = stack_pop(ctx); + hres = variant_call(ctx, v, arg_cnt, &res); + VariantClear(v); + if(FAILED(hres)) + return hres; + + return stack_push(ctx, &res); } static HRESULT interp_vcallv(exec_ctx_t *ctx) { - FIXME("\n"); - return E_NOTIMPL; + const unsigned arg_cnt = ctx->instr->arg1.uint; + VARIANT *v; + HRESULT hres; + + TRACE("\n"); + + v = stack_pop(ctx); + hres = variant_call(ctx, v, arg_cnt, NULL); + VariantClear(v); + return hres; } static HRESULT do_mcall(exec_ctx_t *ctx, VARIANT *res)
participants (1)
-
Alexandre Julliard