From a168ae84b1d5474c7b21526dae7a99567617bb4b Mon Sep 17 00:00:00 2001 From: "timeless%mozdev.org" Date: Wed, 20 Jun 2007 05:56:13 +0000 Subject: [PATCH] Bug 365363 Return value for GetJSDValue ignored leading to death r=silver sr=biesi --- js/jsd/jsd_xpc.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/js/jsd/jsd_xpc.cpp b/js/jsd/jsd_xpc.cpp index f2e8d7a4c39..eb459f3b5c1 100644 --- a/js/jsd/jsd_xpc.cpp +++ b/js/jsd/jsd_xpc.cpp @@ -683,12 +683,11 @@ jsds_ExecutionHookProc (JSDContext* jsdc, JSDThreadState* jsdthreadstate, if (hook_rv == JSD_HOOK_RETURN_RET_WITH_VAL || hook_rv == JSD_HOOK_RETURN_THROW_WITH_VAL) { + *rval = JSVAL_VOID; if (js_rv) { JSDValue *jsdv; - js_rv->GetJSDValue (&jsdv); - *rval = JSD_GetValueWrappedJSVal(jsdc, jsdv); - } else { - *rval = JSVAL_VOID; + if (NS_SUCCEEDED(js_rv->GetJSDValue (&jsdv))) + *rval = JSD_GetValueWrappedJSVal(jsdc, jsdv); } } @@ -1168,7 +1167,9 @@ void jsdScript::InvalidateAll () { JSDContext *cx; - gJsds->GetJSDContext (&cx); + if (NS_FAILED(gJsds->GetJSDContext (&cx))) + return; + JSDScript *script; JSDScript *iter = NULL; @@ -1235,16 +1236,17 @@ jsdScript::GetFunctionObject(jsdIValue **_rval) return NS_ERROR_FAILURE; JSDContext *cx; - gJsds->GetJSDContext (&cx); + if (NS_FAILED(gJsds->GetJSDContext (&cx))) + return NS_ERROR_NOT_INITIALIZED; JSDValue *jsdv = JSD_NewValue(cx, OBJECT_TO_JSVAL(obj)); if (!jsdv) - return NS_ERROR_FAILURE; + return NS_ERROR_OUT_OF_MEMORY; *_rval = jsdValue::FromPtr(cx, jsdv); if (!*_rval) { JSD_DropValue(cx, jsdv); - return NS_ERROR_FAILURE; + return NS_ERROR_OUT_OF_MEMORY; } return NS_OK;