forked from mirrors/0ad
Implement NetClient PushGuiMessage using parameter pack and ScriptInterface::CreateObject from D2080 / b4626359f5 to replace remaining Eval function calls.
Specialize ToJSVal<char[n]> to allow passing string literals as arguments. Freeze NetClient GUI messages. Supersede related c-style casts with static casts. Remove few unneeded conversions. Differential Revision: https://code.wildfiregames.com/D2267 Tested: clang 8.0.1, Jenkins This was SVN commit r22867.
This commit is contained in:
@@ -288,6 +288,37 @@ template<> void ScriptInterface::ToJSVal<const char*>(JSContext* cx, JS::Mutable
|
||||
ret.setUndefined();
|
||||
}
|
||||
|
||||
#define TOJSVAL_CHAR(N) \
|
||||
template<> void ScriptInterface::ToJSVal<wchar_t[N]>(JSContext* cx, JS::MutableHandleValue ret, const wchar_t (&val)[N]) \
|
||||
{ \
|
||||
ToJSVal(cx, ret, static_cast<const wchar_t*>(val)); \
|
||||
} \
|
||||
template<> void ScriptInterface::ToJSVal<char[N]>(JSContext* cx, JS::MutableHandleValue ret, const char (&val)[N]) \
|
||||
{ \
|
||||
ToJSVal(cx, ret, static_cast<const char*>(val)); \
|
||||
}
|
||||
|
||||
TOJSVAL_CHAR(5)
|
||||
TOJSVAL_CHAR(6)
|
||||
TOJSVAL_CHAR(7)
|
||||
TOJSVAL_CHAR(8)
|
||||
TOJSVAL_CHAR(9)
|
||||
TOJSVAL_CHAR(10)
|
||||
TOJSVAL_CHAR(11)
|
||||
TOJSVAL_CHAR(12)
|
||||
TOJSVAL_CHAR(13)
|
||||
TOJSVAL_CHAR(14)
|
||||
TOJSVAL_CHAR(15)
|
||||
TOJSVAL_CHAR(16)
|
||||
TOJSVAL_CHAR(17)
|
||||
TOJSVAL_CHAR(18)
|
||||
TOJSVAL_CHAR(19)
|
||||
TOJSVAL_CHAR(20)
|
||||
TOJSVAL_CHAR(29)
|
||||
TOJSVAL_CHAR(33)
|
||||
TOJSVAL_CHAR(35)
|
||||
#undef TOJSVAL_CHAR
|
||||
|
||||
template<> void ScriptInterface::ToJSVal<CStrW>(JSContext* cx, JS::MutableHandleValue ret, const CStrW& val)
|
||||
{
|
||||
ToJSVal(cx, ret, static_cast<const std::wstring&>(val));
|
||||
|
||||
Reference in New Issue
Block a user