Jacek Caban : jscript: Properly support missing array elements in stringify_array.
Alexandre Julliard
julliard at winehq.org
Fri Mar 2 12:16:45 CST 2018
Module: wine
Branch: master
Commit: 5f9f9a45e9afe84dbcf69b9cb813dc983a70a7cc
URL: https://source.winehq.org/git/wine.git/?a=commit;h=5f9f9a45e9afe84dbcf69b9cb813dc983a70a7cc
Author: Jacek Caban <jacek at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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, ']'))
More information about the wine-cvs
mailing list