From 888c43b8ff01c3873fd61bf424985897c2232e41 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Wed, 12 Oct 2005 07:06:42 +0000 Subject: [PATCH] Use JS_GetStringLength() in js.eval() method, faster than strlen(). --- src/sbbs3/js_internal.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sbbs3/js_internal.c b/src/sbbs3/js_internal.c index bc758f68ae..112b91bec1 100644 --- a/src/sbbs3/js_internal.c +++ b/src/sbbs3/js_internal.c @@ -231,6 +231,8 @@ static JSBool js_eval(JSContext *parent_cx, JSObject *parent_obj, uintN argc, jsval *argv, jsval *rval) { char* buf; + size_t buflen; + JSString* str; JSScript* script; JSContext* cx; JSObject* obj; @@ -242,8 +244,11 @@ js_eval(JSContext *parent_cx, JSObject *parent_obj, uintN argc, jsval *argv, jsv if(argc<1) return(JS_TRUE); - if((buf=JS_GetStringBytes(JS_ValueToString(parent_cx, argv[0])))==NULL) + if((str=JS_ValueToString(parent_cx, argv[0]))==NULL) return(JS_FALSE); + if((buf=JS_GetStringBytes(str))==NULL) + return(JS_FALSE); + buflen=JS_GetStringLength(str); if((cx=JS_NewContext(JS_GetRuntime(parent_cx),JAVASCRIPT_CONTEXT_STACK))==NULL) return(JS_FALSE); @@ -269,7 +274,7 @@ js_eval(JSContext *parent_cx, JSObject *parent_obj, uintN argc, jsval *argv, jsv return(JS_FALSE); } - if((script=JS_CompileScript(cx, obj, buf, strlen(buf), NULL, 0))!=NULL) { + if((script=JS_CompileScript(cx, obj, buf, buflen, NULL, 0))!=NULL) { JS_ExecuteScript(cx, obj, script, rval); JS_DestroyScript(cx, script); } -- GitLab