From bb905ff424b9e92e33ac850414d0efcad01cdf36 Mon Sep 17 00:00:00 2001 From: "jst%mozilla.org" Date: Tue, 4 Dec 2007 00:33:48 +0000 Subject: [PATCH] Fixing bug 406251. Make NPVariant to jsval conversion do the right thing with large integer values. r+sr=peterv@propagandism.org, a=dsicore@mozilla.com git-svn-id: svn://10.0.0.236/trunk@240370 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/modules/plugin/base/src/nsJSNPRuntime.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mozilla/modules/plugin/base/src/nsJSNPRuntime.cpp b/mozilla/modules/plugin/base/src/nsJSNPRuntime.cpp index 24de7a1b1b1..7f2280d07c6 100644 --- a/mozilla/modules/plugin/base/src/nsJSNPRuntime.cpp +++ b/mozilla/modules/plugin/base/src/nsJSNPRuntime.cpp @@ -316,7 +316,16 @@ NPVariantToJSVal(NPP npp, JSContext *cx, const NPVariant *variant) case NPVariantType_Bool : return BOOLEAN_TO_JSVAL(NPVARIANT_TO_BOOLEAN(*variant)); case NPVariantType_Int32 : - return INT_TO_JSVAL(NPVARIANT_TO_INT32(*variant)); + { + // Don't use INT_TO_JSVAL directly to prevent bugs when dealing + // with ints larger than what fits in a integer jsval. + jsval val; + if (::JS_NewNumberValue(cx, NPVARIANT_TO_INT32(*variant), &val)) { + return val; + } + + break; + } case NPVariantType_Double : { jsval val;