Jacek Caban : jscript: Avoid direct access to string buffer in a few more places.

Alexandre Julliard julliard at winehq.org
Fri Mar 8 14:00:37 CST 2013


Module: wine
Branch: master
Commit: 9323dc57afc346a9771545118aa66af6e3a235ef
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9323dc57afc346a9771545118aa66af6e3a235ef

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Mar  8 11:38:11 2013 +0100

jscript: Avoid direct access to string buffer in a few more places.

---

 dlls/jscript/string.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/dlls/jscript/string.c b/dlls/jscript/string.c
index 2aa9e58..59885c4 100644
--- a/dlls/jscript/string.c
+++ b/dlls/jscript/string.c
@@ -1338,12 +1338,13 @@ static HRESULT String_toLowerCase(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags
     if(r) {
         jsstr_t *ret;
 
-        ret = jsstr_alloc_len(str->str, jsstr_length(str));
+        ret = jsstr_alloc_buf(jsstr_length(str));
         if(!ret) {
             jsstr_release(str);
             return E_OUTOFMEMORY;
         }
 
+        jsstr_flush(str, ret->str);
         strlwrW(ret->str);
         *r = jsval_string(ret);
     }
@@ -1366,12 +1367,13 @@ static HRESULT String_toUpperCase(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags
     if(r) {
         jsstr_t *ret;
 
-        ret = jsstr_alloc_len(str->str, jsstr_length(str));
+        ret = jsstr_alloc_buf(jsstr_length(str));
         if(!ret) {
             jsstr_release(str);
             return E_OUTOFMEMORY;
         }
 
+        jsstr_flush(str, ret->str);
         struprW(ret->str);
         *r = jsval_string(ret);
     }
@@ -1449,12 +1451,12 @@ static HRESULT String_idx_get(jsdisp_t *jsdisp, unsigned idx, jsval_t *r)
     StringInstance *string = (StringInstance*)jsdisp;
     jsstr_t *ret;
 
-    TRACE("%p[%u] = %s\n", string, idx, debugstr_wn(string->str->str+idx, 1));
-
     ret = jsstr_substr(string->str, idx, 1);
     if(!ret)
         return E_OUTOFMEMORY;
 
+    TRACE("%p[%u] = %s\n", string, idx, debugstr_jsstr(ret));
+
     *r = jsval_string(ret);
     return S_OK;
 }




More information about the wine-cvs mailing list