Jacek Caban : jscript: Set output to undefined in jsval_copy on failure.
Module: wine Branch: master Commit: e641469f9ffb48a33712147a884f3f1f071dbd40 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e641469f9ffb48a33712147a88... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Thu Jul 28 18:45:13 2016 +0200 jscript: Set output to undefined in jsval_copy on failure. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/jscript/dispex.c | 4 +--- dlls/jscript/jsutils.c | 8 ++++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c index 538219e..cbfcc85 100644 --- a/dlls/jscript/dispex.c +++ b/dlls/jscript/dispex.c @@ -491,10 +491,8 @@ static HRESULT prop_put(jsdisp_t *This, dispex_prop_t *prop, jsval_t val, IServi TRACE("%s = %s\n", debugstr_w(prop->name), debugstr_jsval(val)); hres = jsval_copy(val, &prop->u.val); - if(FAILED(hres)) { - prop->u.val = jsval_undefined(); + if(FAILED(hres)) return hres; - } if(This->builtin_info->on_put) This->builtin_info->on_put(This, prop->name); diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c index dd79510..e7100ba 100644 --- a/dlls/jscript/jsutils.c +++ b/dlls/jscript/jsutils.c @@ -212,13 +212,17 @@ static HRESULT jsval_variant(jsval_t *val, VARIANT *var) __JSVAL_TYPE(*val) = JSV_VARIANT; __JSVAL_VAR(*val) = v = heap_alloc(sizeof(VARIANT)); - if(!v) + if(!v) { + *val = jsval_undefined(); return E_OUTOFMEMORY; + } V_VT(v) = VT_EMPTY; hres = VariantCopy(v, var); - if(FAILED(hres)) + if(FAILED(hres)) { + *val = jsval_undefined(); heap_free(v); + } return hres; }
participants (1)
-
Alexandre Julliard