jscript: Change prototype of jsstr_alloc_buf and fix some error handling issues.

Sebastian Lackner sebastian at fds-team.de
Wed Sep 7 01:35:46 CDT 2016


Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---
 dlls/jscript/array.c    |    4 ++--
 dlls/jscript/date.c     |   22 +++++++++++-----------
 dlls/jscript/error.c    |    4 ++--
 dlls/jscript/function.c |    4 ++--
 dlls/jscript/global.c   |   22 +++++++++++-----------
 dlls/jscript/jsregexp.c |    4 ++--
 dlls/jscript/jsstr.c    |   17 +++++++++--------
 dlls/jscript/jsstr.h    |    6 +++---
 dlls/jscript/number.c   |    4 ++--
 dlls/jscript/object.c   |    4 ++--
 dlls/jscript/string.c   |   22 +++++++++++-----------
 11 files changed, 57 insertions(+), 56 deletions(-)

diff --git a/dlls/jscript/array.c b/dlls/jscript/array.c
index 190c7dc..cc1f258 100644
--- a/dlls/jscript/array.c
+++ b/dlls/jscript/array.c
@@ -291,8 +291,8 @@ static HRESULT array_join(script_ctx_t *ctx, jsdisp_t *array, DWORD length, cons
         if(SUCCEEDED(hres)) {
             WCHAR *ptr = NULL;
 
-            ptr = jsstr_alloc_buf(len, &ret);
-            if(ptr) {
+            ret = jsstr_alloc_buf(len, &ptr);
+            if(ret) {
                 if(str_tab[0])
                     ptr += jsstr_flush(str_tab[0], ptr);
 
diff --git a/dlls/jscript/date.c b/dlls/jscript/date.c
index a80690c..b35d812 100644
--- a/dlls/jscript/date.c
+++ b/dlls/jscript/date.c
@@ -548,8 +548,8 @@ static inline HRESULT date_to_string(DOUBLE time, BOOL show_offset, int offset,
             offset = -offset;
         }
 
-        date_str = jsstr_alloc_buf(len, &date_jsstr);
-        if(!date_str)
+        date_jsstr = jsstr_alloc_buf(len, &date_str);
+        if(!date_jsstr)
             return E_OUTOFMEMORY;
 
         if(!show_offset)
@@ -627,7 +627,7 @@ static HRESULT Date_toLocaleString(script_ctx_t *ctx, vdisp_t *jsthis, WORD flag
         date_len = GetDateFormatW(ctx->lcid, DATE_LONGDATE, &st, NULL, NULL, 0);
         time_len = GetTimeFormatW(ctx->lcid, 0, &st, NULL, NULL, 0);
 
-        ptr = jsstr_alloc_buf(date_len+time_len-1, &date_str);
+        date_str = jsstr_alloc_buf(date_len+time_len-1, &ptr);
         if(!date_str)
             return E_OUTOFMEMORY;
 
@@ -723,7 +723,7 @@ static inline HRESULT create_utc_string(script_ctx_t *ctx, vdisp_t *jsthis, jsva
         } while(day);
         day = date_from_time(date->time);
 
-        ptr = jsstr_alloc_buf(len, &date_str);
+        date_str = jsstr_alloc_buf(len, &ptr);
         if(!date_str)
             return E_OUTOFMEMORY;
 
@@ -819,8 +819,8 @@ static HRESULT dateobj_to_date_string(DateInstance *date, jsval_t *r)
         } while(day);
         day = date_from_time(time);
 
-        ptr = jsstr_alloc_buf(len, &date_str);
-        if(!ptr)
+        date_str = jsstr_alloc_buf(len, &ptr);
+        if(!date_str)
             return E_OUTOFMEMORY;
         sprintfW(ptr, formatAD?formatADW:formatBCW, week, month, day, year);
 
@@ -870,7 +870,7 @@ static HRESULT Date_toTimeString(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags,
     if(r) {
         WCHAR *ptr;
 
-        ptr = jsstr_alloc_buf(17, &date_str);
+        date_str = jsstr_alloc_buf(17, &ptr);
         if(!date_str)
             return E_OUTOFMEMORY;
 
@@ -925,8 +925,8 @@ static HRESULT Date_toLocaleDateString(script_ctx_t *ctx, vdisp_t *jsthis, WORD
         WCHAR *ptr;
 
         len = GetDateFormatW(ctx->lcid, DATE_LONGDATE, &st, NULL, NULL, 0);
-        ptr = jsstr_alloc_buf(len, &date_str);
-        if(!ptr)
+        date_str = jsstr_alloc_buf(len, &ptr);
+        if(!date_str)
             return E_OUTOFMEMORY;
         GetDateFormatW(ctx->lcid, DATE_LONGDATE, &st, NULL, ptr, len);
 
@@ -964,8 +964,8 @@ static HRESULT Date_toLocaleTimeString(script_ctx_t *ctx, vdisp_t *jsthis, WORD
         WCHAR *ptr;
 
         len = GetTimeFormatW(ctx->lcid, 0, &st, NULL, NULL, 0);
-        ptr = jsstr_alloc_buf(len, &date_str);
-        if(!ptr)
+        date_str = jsstr_alloc_buf(len, &ptr);
+        if(!date_str)
             return E_OUTOFMEMORY;
         GetTimeFormatW(ctx->lcid, 0, &st, NULL, ptr, len);
 
diff --git a/dlls/jscript/error.c b/dlls/jscript/error.c
index 3f6a1ef..b855b87 100644
--- a/dlls/jscript/error.c
+++ b/dlls/jscript/error.c
@@ -85,8 +85,8 @@ static HRESULT Error_toString(script_ctx_t *ctx, vdisp_t *vthis, WORD flags,
         if(name_len && msg_len) {
             WCHAR *ptr;
 
-            ptr = jsstr_alloc_buf(name_len + msg_len + 2, &ret);
-            if(ptr) {
+            ret = jsstr_alloc_buf(name_len + msg_len + 2, &ptr);
+            if(ret) {
                 jsstr_flush(name, ptr);
                 ptr[name_len] = ':';
                 ptr[name_len+1] = ' ';
diff --git a/dlls/jscript/function.c b/dlls/jscript/function.c
index 03d5cad..04dcb18 100644
--- a/dlls/jscript/function.c
+++ b/dlls/jscript/function.c
@@ -302,8 +302,8 @@ static HRESULT function_to_string(FunctionInstance *function, jsstr_t **ret)
         WCHAR *ptr;
 
         name_len = strlenW(function->name);
-        ptr = jsstr_alloc_buf((sizeof(native_prefixW)+sizeof(native_suffixW))/sizeof(WCHAR) + name_len, &str);
-        if(!ptr)
+        str = jsstr_alloc_buf((sizeof(native_prefixW)+sizeof(native_suffixW))/sizeof(WCHAR) + name_len, &ptr);
+        if(!str)
             return E_OUTOFMEMORY;
 
         memcpy(ptr, native_prefixW, sizeof(native_prefixW));
diff --git a/dlls/jscript/global.c b/dlls/jscript/global.c
index ba3ba9a..6cd5ee9 100644
--- a/dlls/jscript/global.c
+++ b/dlls/jscript/global.c
@@ -150,8 +150,8 @@ static HRESULT JSGlobal_escape(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, u
             len += 3;
     }
 
-    ret = jsstr_alloc_buf(len, &ret_str);
-    if(!ret) {
+    ret_str = jsstr_alloc_buf(len, &ret);
+    if(!ret_str) {
         jsstr_release(str);
         return E_OUTOFMEMORY;
     }
@@ -510,8 +510,8 @@ static HRESULT JSGlobal_unescape(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags,
         len++;
     }
 
-    ret = jsstr_alloc_buf(len, &ret_str);
-    if(!ret) {
+    ret_str = jsstr_alloc_buf(len, &ret);
+    if(!ret_str) {
         jsstr_release(str);
         return E_OUTOFMEMORY;
     }
@@ -649,8 +649,8 @@ static HRESULT JSGlobal_encodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags
         }
     }
 
-    rptr = jsstr_alloc_buf(len, &ret);
-    if(!rptr) {
+    ret = jsstr_alloc_buf(len, &rptr);
+    if(!ret) {
         jsstr_release(str);
         return E_OUTOFMEMORY;
     }
@@ -728,8 +728,8 @@ static HRESULT JSGlobal_decodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags
         }
     }
 
-    ret = jsstr_alloc_buf(len, &ret_str);
-    if(!ret) {
+    ret_str = jsstr_alloc_buf(len, &ret);
+    if(!ret_str) {
         jsstr_release(str);
         return E_OUTOFMEMORY;
     }
@@ -799,8 +799,8 @@ static HRESULT JSGlobal_encodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, W
         }
     }
 
-    ret = jsstr_alloc_buf(len, &ret_str);
-    if(!ret) {
+    ret_str = jsstr_alloc_buf(len, &ret);
+    if(!ret_str) {
         jsstr_release(str);
         return E_OUTOFMEMORY;
     }
@@ -899,7 +899,7 @@ static HRESULT JSGlobal_decodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, W
         }
     }
 
-    out_ptr = jsstr_alloc_buf(len, &ret);
+    ret = jsstr_alloc_buf(len, &out_ptr);
     if(!ret) {
         jsstr_release(str);
         return E_OUTOFMEMORY;
diff --git a/dlls/jscript/jsregexp.c b/dlls/jscript/jsregexp.c
index a47da1f..a9924ee 100644
--- a/dlls/jscript/jsregexp.c
+++ b/dlls/jscript/jsregexp.c
@@ -374,8 +374,8 @@ static HRESULT RegExp_toString(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, u
     if(f & REG_MULTILINE)
         len++;
 
-    ptr = jsstr_alloc_buf(len, &ret);
-    if(!ptr)
+    ret = jsstr_alloc_buf(len, &ptr);
+    if(!ret)
         return E_OUTOFMEMORY;
 
     *ptr++ = '/';
diff --git a/dlls/jscript/jsstr.c b/dlls/jscript/jsstr.c
index add0195..e1c4902 100644
--- a/dlls/jscript/jsstr.c
+++ b/dlls/jscript/jsstr.c
@@ -66,7 +66,7 @@ static inline void jsstr_init(jsstr_t *str, unsigned len, jsstr_tag_t tag)
     str->ref = 1;
 }
 
-WCHAR *jsstr_alloc_buf(unsigned len, jsstr_t **r)
+jsstr_t *jsstr_alloc_buf(unsigned len, WCHAR **buf)
 {
     jsstr_inline_t *ret;
 
@@ -79,8 +79,8 @@ WCHAR *jsstr_alloc_buf(unsigned len, jsstr_t **r)
 
     jsstr_init(&ret->str, len, JSSTR_INLINE);
     ret->buf[len] = 0;
-    *r = &ret->str;
-    return ret->buf;
+    *buf = ret->buf;
+    return &ret->str;
 }
 
 jsstr_t *jsstr_alloc_len(const WCHAR *buf, unsigned len)
@@ -88,8 +88,8 @@ jsstr_t *jsstr_alloc_len(const WCHAR *buf, unsigned len)
     jsstr_t *ret;
     WCHAR *ptr;
 
-    ptr = jsstr_alloc_buf(len, &ret);
-    if(ptr)
+    ret = jsstr_alloc_buf(len, &ptr);
+    if(ret)
         memcpy(ptr, buf, len*sizeof(WCHAR));
 
     return ret;
@@ -246,7 +246,7 @@ jsstr_t *jsstr_concat(jsstr_t *str1, jsstr_t *str2)
         }
     }
 
-    ptr = jsstr_alloc_buf(len1+len2, &ret);
+    ret = jsstr_alloc_buf(len1+len2, &ptr);
     if(!ret)
         return NULL;
 
@@ -308,14 +308,15 @@ BOOL init_strings(void)
 {
     static const WCHAR NaNW[] = { 'N','a','N',0 };
     static const WCHAR undefinedW[] = {'u','n','d','e','f','i','n','e','d',0};
+    WCHAR *ptr;
 
-    if(!jsstr_alloc_buf(0, &empty_str))
+    if(!(empty_str = jsstr_alloc_buf(0, &ptr)))
         return FALSE;
     if(!(nan_str = jsstr_alloc(NaNW)))
         return FALSE;
     if(!(undefined_str = jsstr_alloc(undefinedW)))
         return FALSE;
-    if(!jsstr_alloc_buf(0, &null_bstr_str))
+    if(!(null_bstr_str = jsstr_alloc_buf(0, &ptr)))
         return FALSE;
      return TRUE;
 }
diff --git a/dlls/jscript/jsstr.h b/dlls/jscript/jsstr.h
index a14acc3..49651bb 100644
--- a/dlls/jscript/jsstr.h
+++ b/dlls/jscript/jsstr.h
@@ -95,7 +95,7 @@ typedef struct {
 } jsstr_rope_t;
 
 jsstr_t *jsstr_alloc_len(const WCHAR*,unsigned) DECLSPEC_HIDDEN;
-WCHAR *jsstr_alloc_buf(unsigned,jsstr_t**) DECLSPEC_HIDDEN;
+jsstr_t *jsstr_alloc_buf(unsigned,WCHAR**) DECLSPEC_HIDDEN;
 
 static inline jsstr_t *jsstr_alloc(const WCHAR *str)
 {
@@ -162,8 +162,8 @@ static inline jsstr_t *jsstr_substr(jsstr_t *str, unsigned off, unsigned len)
     jsstr_t *ret;
     WCHAR *ptr;
 
-    ptr = jsstr_alloc_buf(len, &ret);
-    if(ptr)
+    ret = jsstr_alloc_buf(len, &ptr);
+    if(ret)
         jsstr_extract(str, off, len, ptr);
     return ret;
 }
diff --git a/dlls/jscript/number.c b/dlls/jscript/number.c
index 9b5d9a2..94c8cc4 100644
--- a/dlls/jscript/number.c
+++ b/dlls/jscript/number.c
@@ -127,7 +127,7 @@ static inline jsstr_t *number_to_fixed(double val, int prec)
     if(prec)
         size += prec+1;
 
-    str = jsstr_alloc_buf(size, &ret);
+    ret = jsstr_alloc_buf(size, &str);
     if(!ret)
         return NULL;
 
@@ -194,7 +194,7 @@ static inline jsstr_t *number_to_exponential(double val, int prec)
     if(neg)
         size++;
 
-    str = jsstr_alloc_buf(size, &ret);
+    ret = jsstr_alloc_buf(size, &str);
     if(!ret)
         return NULL;
 
diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c
index 827040b..de09060 100644
--- a/dlls/jscript/object.c
+++ b/dlls/jscript/object.c
@@ -73,8 +73,8 @@ static HRESULT Object_toString(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, u
         jsstr_t *ret;
         WCHAR *ptr;
 
-        ptr = jsstr_alloc_buf(9+strlenW(str), &ret);
-        if(!ptr)
+        ret = jsstr_alloc_buf(9+strlenW(str), &ptr);
+        if(!ret)
             return E_OUTOFMEMORY;
 
         sprintfW(ptr, formatW, str);
diff --git a/dlls/jscript/string.c b/dlls/jscript/string.c
index 9b6b5ff..d3aa1ae 100644
--- a/dlls/jscript/string.c
+++ b/dlls/jscript/string.c
@@ -175,7 +175,7 @@ static HRESULT do_attributeless_tag_format(script_ctx_t *ctx, vdisp_t *jsthis, j
 
     tagname_len = strlenW(tagname);
 
-    ptr = jsstr_alloc_buf(jsstr_length(str) + 2*tagname_len + 5, &ret);
+    ret = jsstr_alloc_buf(jsstr_length(str) + 2*tagname_len + 5, &ptr);
     if(!ret) {
         jsstr_release(str);
         return E_OUTOFMEMORY;
@@ -225,8 +225,8 @@ static HRESULT do_attribute_tag_format(script_ctx_t *ctx, vdisp_t *jsthis, unsig
         jsstr_t *ret;
         WCHAR *ptr;
 
-        ptr = jsstr_alloc_buf(2*tagname_len + attrname_len + jsstr_length(attr_value) + jsstr_length(str) + 9, &ret);
-        if(ptr) {
+        ret = jsstr_alloc_buf(2*tagname_len + attrname_len + jsstr_length(attr_value) + jsstr_length(str) + 9, &ptr);
+        if(ret) {
             *ptr++ = '<';
             memcpy(ptr, tagname, tagname_len*sizeof(WCHAR));
             ptr += tagname_len;
@@ -433,8 +433,8 @@ static HRESULT String_concat(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, uns
             }
 
             if(SUCCEEDED(hres)) {
-                ptr = jsstr_alloc_buf(len, &ret);
-                if(ptr) {
+                ret = jsstr_alloc_buf(len, &ptr);
+                if(ret) {
                     for(i=0; i < str_cnt; i++)
                         ptr += jsstr_flush(strs[i], ptr);
                 }else {
@@ -1405,8 +1405,8 @@ static HRESULT String_toLowerCase(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags
         jsstr_t *ret;
         WCHAR *buf;
 
-        buf = jsstr_alloc_buf(jsstr_length(str), &ret);
-        if(!buf) {
+        ret = jsstr_alloc_buf(jsstr_length(str), &buf);
+        if(!ret) {
             jsstr_release(str);
             return E_OUTOFMEMORY;
         }
@@ -1435,8 +1435,8 @@ static HRESULT String_toUpperCase(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags
         jsstr_t *ret;
         WCHAR *buf;
 
-        buf = jsstr_alloc_buf(jsstr_length(str), &ret);
-        if(!buf) {
+        ret = jsstr_alloc_buf(jsstr_length(str), &buf);
+        if(!ret) {
             jsstr_release(str);
             return E_OUTOFMEMORY;
         }
@@ -1588,8 +1588,8 @@ static HRESULT StringConstr_fromCharCode(script_ctx_t *ctx, vdisp_t *jsthis, WOR
 
     TRACE("\n");
 
-    ret_str = jsstr_alloc_buf(argc, &ret);
-    if(!ret_str)
+    ret = jsstr_alloc_buf(argc, &ret_str);
+    if(!ret)
         return E_OUTOFMEMORY;
 
     for(i=0; i<argc; i++) {
-- 
2.9.0



More information about the wine-patches mailing list