Fix crash when calling JSFastNatives with too few arguments (they don't guarantee to give the number requested in the definition)

This was SVN commit r8028.
This commit is contained in:
Ykkrosh
2010-08-23 14:30:13 +00:00
parent b9b5f1461a
commit 5fbbc27dfd
+21 -3
View File
@@ -117,8 +117,14 @@ JSBool print(JSContext* cx, uintN argc, jsval* vp)
return JS_TRUE;
}
JSBool logmsg(JSContext* cx, uintN UNUSED(argc), jsval* vp)
JSBool logmsg(JSContext* cx, uintN argc, jsval* vp)
{
if (argc < 1)
{
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
}
std::wstring str;
if (!ScriptInterface::FromJSVal(cx, JS_ARGV(cx, vp)[0], str))
return JS_FALSE;
@@ -127,8 +133,14 @@ JSBool logmsg(JSContext* cx, uintN UNUSED(argc), jsval* vp)
return JS_TRUE;
}
JSBool warn(JSContext* cx, uintN UNUSED(argc), jsval* vp)
JSBool warn(JSContext* cx, uintN argc, jsval* vp)
{
if (argc < 1)
{
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
}
std::wstring str;
if (!ScriptInterface::FromJSVal(cx, JS_ARGV(cx, vp)[0], str))
return JS_FALSE;
@@ -137,8 +149,14 @@ JSBool warn(JSContext* cx, uintN UNUSED(argc), jsval* vp)
return JS_TRUE;
}
JSBool error(JSContext* cx, uintN UNUSED(argc), jsval* vp)
JSBool error(JSContext* cx, uintN argc, jsval* vp)
{
if (argc < 1)
{
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
}
std::wstring str;
if (!ScriptInterface::FromJSVal(cx, JS_ARGV(cx, vp)[0], str))
return JS_FALSE;