vbscript: Added interp_jmp_false implementation.
authorJacek Caban <jacek@codeweavers.com>
Tue, 13 Sep 2011 09:39:13 +0000 (11:39 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 13 Sep 2011 15:16:59 +0000 (17:16 +0200)
dlls/vbscript/interp.c

index e444016a392b231f870b4b1f4c322b9c39290686..d768aab9447622f707d01e02f636f5987ca827cb 100644 (file)
@@ -384,8 +384,24 @@ static HRESULT interp_jmp(exec_ctx_t *ctx)
 
 static HRESULT interp_jmp_false(exec_ctx_t *ctx)
 {
-    FIXME("\n");
-    return E_NOTIMPL;
+    const unsigned arg = ctx->instr->arg1.uint;
+    variant_val_t val;
+    HRESULT hres;
+
+    TRACE("%u\n", arg);
+
+    hres = stack_pop_val(ctx, &val);
+    if(V_VT(val.v) != VT_BOOL) {
+        FIXME("unsupported for %s\n", debugstr_variant(val.v));
+        release_val(&val);
+        return E_NOTIMPL;
+    }
+
+    if(V_BOOL(val.v))
+        ctx->instr++;
+    else
+        instr_jmp(ctx, ctx->instr->arg1.uint);
+    return S_OK;
 }
 
 static HRESULT interp_ret(exec_ctx_t *ctx)