Bug 961490 - Some cleaner rooting in NPAPI _eval. r=terrence,bsmedberg

This commit is contained in:
Tom Schuster 2014-01-23 20:49:40 +01:00
parent 1547cdc439
commit 2ddc9b3007

View File

@ -1506,11 +1506,6 @@ _evaluate(NPP npp, NPObject* npobj, NPString *script, NPVariant *result)
NS_ABORT_IF_FALSE(obj,
"JS_ObjectToInnerObject should never return null with non-null input.");
// Root obj and the rval (below).
JS::Value vec[] = { OBJECT_TO_JSVAL(obj), JSVAL_NULL };
JS::AutoArrayRooter tvr(cx, ArrayLength(vec), vec);
JS::Value *rval = &vec[1];
if (result) {
// Initialize the out param to void
VOID_TO_NPVARIANT(*result);
@ -1563,12 +1558,13 @@ _evaluate(NPP npp, NPObject* npobj, NPString *script, NPVariant *result)
JS::CompileOptions options(cx);
options.setFileAndLine(spec, 0)
.setVersion(JSVERSION_DEFAULT);
JS::Rooted<JS::Value> rval(cx);
nsresult rv = scx->EvaluateString(utf16script, obj, options,
/* aCoerceToString = */ false,
rval);
rval.address());
return NS_SUCCEEDED(rv) &&
(!result || JSValToNPVariant(npp, cx, *rval, result));
(!result || JSValToNPVariant(npp, cx, rval, result));
}
bool NP_CALLBACK