Module: wine Branch: master Commit: 5f9f9a45e9afe84dbcf69b9cb813dc983a70a7cc URL: https://source.winehq.org/git/wine.git/?a=commit;h=5f9f9a45e9afe84dbcf69b9cb...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Mar 1 23:58:17 2018 +0100
jscript: Properly support missing array elements in stringify_array.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/jscript/json.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/dlls/jscript/json.c b/dlls/jscript/json.c index 7d69cf5..fc23b54 100644 --- a/dlls/jscript/json.c +++ b/dlls/jscript/json.c @@ -545,15 +545,18 @@ static HRESULT stringify_array(stringify_ctx_t *ctx, jsdisp_t *obj) }
hres = jsdisp_get_idx(obj, i, &val); - if(FAILED(hres)) - return hres; - - hres = stringify(ctx, val); - if(FAILED(hres)) + if(SUCCEEDED(hres)) { + hres = stringify(ctx, val); + if(FAILED(hres)) + return hres; + if(hres == S_FALSE && !append_string(ctx, nullW)) + return E_OUTOFMEMORY; + }else if(hres == DISP_E_UNKNOWNNAME) { + if(!append_string(ctx, nullW)) + return E_OUTOFMEMORY; + }else { return hres; - - if(hres == S_FALSE && !append_string(ctx, nullW)) - return E_OUTOFMEMORY; + } }
if((length && *ctx->gap && !append_char(ctx, '\n')) || !append_char(ctx, ']'))