Module: wine Branch: master Commit: 29ff14493ddfe80989974f46233c0c934ce0f7ef URL: http://source.winehq.org/git/wine.git/?a=commit;h=29ff14493ddfe80989974f4623...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Mar 5 11:48:55 2013 +0100
jscript: Added jsstr_flush helper and use it in array_join.
---
dlls/jscript/array.c | 17 ++++------------- dlls/jscript/jsstr.h | 7 +++++++ 2 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/dlls/jscript/array.c b/dlls/jscript/array.c index fef37e6..5987ef1 100644 --- a/dlls/jscript/array.c +++ b/dlls/jscript/array.c @@ -286,15 +286,10 @@ static HRESULT array_join(script_ctx_t *ctx, jsdisp_t *array, DWORD length, cons if(SUCCEEDED(hres)) ret = jsstr_alloc_buf(len); if(ret) { - unsigned tmplen; - ptr = ret->str;
- if(str_tab[0]) { - tmplen = jsstr_length(str_tab[0]); - memcpy(ptr, str_tab[0]->str, tmplen*sizeof(WCHAR)); - ptr += tmplen; - } + if(str_tab[0]) + ptr += jsstr_flush(str_tab[0], ptr);
for(i=1; i < length; i++) { if(seplen) { @@ -302,13 +297,9 @@ static HRESULT array_join(script_ctx_t *ctx, jsdisp_t *array, DWORD length, cons ptr += seplen; }
- if(str_tab[i]) { - tmplen = jsstr_length(str_tab[i]); - memcpy(ptr, str_tab[i]->str, tmplen*sizeof(WCHAR)); - ptr += tmplen; - } + if(str_tab[i]) + ptr += jsstr_flush(str_tab[i], ptr); } - *ptr=0; }else { hres = E_OUTOFMEMORY; } diff --git a/dlls/jscript/jsstr.h b/dlls/jscript/jsstr.h index 8883dcb..cbe68ef 100644 --- a/dlls/jscript/jsstr.h +++ b/dlls/jscript/jsstr.h @@ -59,6 +59,13 @@ static inline BOOL jsstr_eq(jsstr_t *str1, jsstr_t *str2) return len == jsstr_length(str2) && !memcmp(str1->str, str2->str, len*sizeof(WCHAR)); }
+static inline unsigned jsstr_flush(jsstr_t *str, WCHAR *buf) +{ + unsigned len = jsstr_length(str); + memcpy(buf, str->str, len*sizeof(WCHAR)); + return len; +} + static inline jsstr_t *jsstr_substr(jsstr_t *str, unsigned off, unsigned len) { return jsstr_alloc_len(str->str+off, len);