From cec6efe8025014d600bbdc1356a7774fc16ee609 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Sat, 12 Nov 2011 00:50:10 +0000 Subject: [PATCH] We can't throww an exception from the get function when private data is NULL because the get function is called on the prototype which isn't constructed (via the constructor). --- src/sbbs3/js_file.c | 4 +--- src/sbbs3/js_msgbase.c | 4 +--- src/sbbs3/js_queue.c | 6 ++---- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/sbbs3/js_file.c b/src/sbbs3/js_file.c index 88f4774508..d38fd7850c 100644 --- a/src/sbbs3/js_file.c +++ b/src/sbbs3/js_file.c @@ -1931,10 +1931,8 @@ static JSBool js_file_get(JSContext *cx, JSObject *obj, jsid id, jsval *vp) off_t lng; int in; - if((p=(private_t*)JS_GetPrivate(cx,obj))==NULL) { - JS_ReportError(cx,getprivate_failure,WHERE); + if((p=(private_t*)JS_GetPrivate(cx,obj))==NULL) return(JS_FALSE); - } JS_IdToValue(cx, id, &idval); tiny = JSVAL_TO_INT(idval); diff --git a/src/sbbs3/js_msgbase.c b/src/sbbs3/js_msgbase.c index 9644f216ab..8ac08b9abf 100644 --- a/src/sbbs3/js_msgbase.c +++ b/src/sbbs3/js_msgbase.c @@ -2033,10 +2033,8 @@ static JSBool js_msgbase_get(JSContext *cx, JSObject *obj, jsid id, jsval *vp) private_t* p; jsrefcount rc; - if((p=(private_t*)JS_GetPrivate(cx,obj))==NULL) { - JS_ReportError(cx,getprivate_failure,WHERE); + if((p=(private_t*)JS_GetPrivate(cx,obj))==NULL) return(JS_FALSE); - } JS_IdToValue(cx, id, &idval); tiny = JSVAL_TO_INT(idval); diff --git a/src/sbbs3/js_queue.c b/src/sbbs3/js_queue.c index 4a68f9e5d5..1d16e2fde1 100644 --- a/src/sbbs3/js_queue.c +++ b/src/sbbs3/js_queue.c @@ -302,10 +302,8 @@ static JSBool js_queue_get(JSContext *cx, JSObject *obj, jsid id, jsval *vp) msg_queue_t* q; jsrefcount rc; - if((q=(msg_queue_t*)JS_GetPrivate(cx,obj))==NULL) { - JS_ReportError(cx,getprivate_failure,WHERE); - return(JS_FALSE); - } + if((q=(msg_queue_t*)JS_GetPrivate(cx,obj))==NULL) + return JS_FALSE; JS_IdToValue(cx, id, &idval); tiny = JSVAL_TO_INT(idval); -- GitLab