Module: wine Branch: master Commit: 1ff55510d8fb112d735864db942e79a2d2ae0a57 URL: https://source.winehq.org/git/wine.git/?a=commit;h=1ff55510d8fb112d735864db9...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Oct 28 18:40:36 2019 +0100
vbscript: Support calling VARIANT in interpreter.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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)