From c68849a5299aa17791e7efc148f7bae6d01d0da2 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Tue, 17 Sep 2019 05:29:55 +0000 Subject: [PATCH] Do not re-create the result arrays for each socket that's read (derp). This only impacts the new socket_select() method with multiple arrays. --- src/sbbs3/js_global.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index b9e832ff5e..c6c8929aca 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -3779,15 +3779,15 @@ js_socket_select(JSContext *cx, uintN argc, jsval *arglist) for (j = 0; j < inarray_cnt; j++) { if (limit[j] > 0) { len = 0; + JS_RESUMEREQUEST(cx, rc); + if((rarray = JS_NewArrayObject(cx, 0, NULL))==NULL) + return(JS_FALSE); + val = OBJECT_TO_JSVAL(rarray); + if (!JS_SetProperty(cx, robj, props[j], &val)) + return JS_FALSE; + rc=JS_SUSPENDREQUEST(cx); for(i=0;i<limit[j];i++) { JS_RESUMEREQUEST(cx, rc); - if((rarray = JS_NewArrayObject(cx, 0, NULL))==NULL) - return(JS_FALSE); - val = OBJECT_TO_JSVAL(rarray); - if (!JS_SetProperty(cx, robj, props[j], &val)) { - rc=JS_SUSPENDREQUEST(cx); - return JS_FALSE; - } if(!JS_GetElement(cx, inarray[j], i, &val)) { rc=JS_SUSPENDREQUEST(cx); break; -- GitLab