Jacek Caban : jscript: Added jsstr_flush helper and use it in array_join.
Alexandre Julliard
julliard at winehq.org
Tue Mar 5 12:59:17 CST 2013
Module: wine
Branch: master
Commit: 29ff14493ddfe80989974f46233c0c934ce0f7ef
URL: http://source.winehq.org/git/wine.git/?a=commit;h=29ff14493ddfe80989974f46233c0c934ce0f7ef
Author: Jacek Caban <jacek at 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);
More information about the wine-cvs
mailing list