mirror of
https://github.com/reactos/wine.git
synced 2025-02-12 23:58:56 +00:00
jscript: Added jsstr_flush helper and use it in array_join.
This commit is contained in:
parent
0effd926b6
commit
29ff14493d
@ -286,15 +286,10 @@ static HRESULT array_join(script_ctx_t *ctx, jsdisp_t *array, DWORD length, cons
|
|||||||
if(SUCCEEDED(hres))
|
if(SUCCEEDED(hres))
|
||||||
ret = jsstr_alloc_buf(len);
|
ret = jsstr_alloc_buf(len);
|
||||||
if(ret) {
|
if(ret) {
|
||||||
unsigned tmplen;
|
|
||||||
|
|
||||||
ptr = ret->str;
|
ptr = ret->str;
|
||||||
|
|
||||||
if(str_tab[0]) {
|
if(str_tab[0])
|
||||||
tmplen = jsstr_length(str_tab[0]);
|
ptr += jsstr_flush(str_tab[0], ptr);
|
||||||
memcpy(ptr, str_tab[0]->str, tmplen*sizeof(WCHAR));
|
|
||||||
ptr += tmplen;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(i=1; i < length; i++) {
|
for(i=1; i < length; i++) {
|
||||||
if(seplen) {
|
if(seplen) {
|
||||||
@ -302,13 +297,9 @@ static HRESULT array_join(script_ctx_t *ctx, jsdisp_t *array, DWORD length, cons
|
|||||||
ptr += seplen;
|
ptr += seplen;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(str_tab[i]) {
|
if(str_tab[i])
|
||||||
tmplen = jsstr_length(str_tab[i]);
|
ptr += jsstr_flush(str_tab[i], ptr);
|
||||||
memcpy(ptr, str_tab[i]->str, tmplen*sizeof(WCHAR));
|
|
||||||
ptr += tmplen;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
*ptr=0;
|
|
||||||
}else {
|
}else {
|
||||||
hres = E_OUTOFMEMORY;
|
hres = E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
|
@ -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));
|
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)
|
static inline jsstr_t *jsstr_substr(jsstr_t *str, unsigned off, unsigned len)
|
||||||
{
|
{
|
||||||
return jsstr_alloc_len(str->str+off, len);
|
return jsstr_alloc_len(str->str+off, len);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user