Add ToJSVal<CRect> to make the conversion reusable, remove unused PSERROR_Scripting_ConversionFailed and dead catch.
Avoids the CRect copy or stops relying on optimization to avoid the copy. Split from D2142. Differential Revision: https://code.wildfiregames.com/D2259 Tested on: gcc 9.1.0, Jenkins This was SVN commit r22847.
This commit is contained in:
parent
c25ab670e6
commit
d5c1fd09a4
@ -211,6 +211,16 @@ template<> bool ScriptInterface::FromJSVal<CPos>(JSContext* cx, JS::HandleValue
|
||||
return true;
|
||||
}
|
||||
|
||||
template<> void ScriptInterface::ToJSVal<CRect>(JSContext* cx, JS::MutableHandleValue ret, const CRect& val)
|
||||
{
|
||||
ScriptInterface::GetScriptInterfaceAndCBData(cx)->pScriptInterface->CreateObject(
|
||||
ret,
|
||||
"left", val.left,
|
||||
"right", val.right,
|
||||
"top", val.top,
|
||||
"bottom", val.bottom);
|
||||
}
|
||||
|
||||
template<> void ScriptInterface::ToJSVal<CClientArea>(JSContext* cx, JS::MutableHandleValue ret, const CClientArea& val)
|
||||
{
|
||||
val.ToJSVal(cx, ret);
|
||||
|
@ -98,29 +98,23 @@ bool JSI_GUISize::toString(JSContext* cx, uint argc, JS::Value* vp)
|
||||
JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
|
||||
CStr buffer;
|
||||
|
||||
try
|
||||
{
|
||||
ScriptInterface* pScriptInterface = ScriptInterface::GetScriptInterfaceAndCBData(cx)->pScriptInterface;
|
||||
double val, valr;
|
||||
ScriptInterface* pScriptInterface = ScriptInterface::GetScriptInterfaceAndCBData(cx)->pScriptInterface;
|
||||
double val, valr;
|
||||
|
||||
#define SIDE(side) \
|
||||
pScriptInterface->GetProperty(args.thisv(), #side, val); \
|
||||
pScriptInterface->GetProperty(args.thisv(), "r"#side, valr); \
|
||||
buffer += ToPercentString(val, valr);
|
||||
|
||||
SIDE(left);
|
||||
buffer += " ";
|
||||
SIDE(top);
|
||||
buffer += " ";
|
||||
SIDE(right);
|
||||
buffer += " ";
|
||||
SIDE(bottom);
|
||||
SIDE(left);
|
||||
buffer += " ";
|
||||
SIDE(top);
|
||||
buffer += " ";
|
||||
SIDE(right);
|
||||
buffer += " ";
|
||||
SIDE(bottom);
|
||||
#undef SIDE
|
||||
}
|
||||
catch (PSERROR_Scripting_ConversionFailed&)
|
||||
{
|
||||
ScriptInterface::ToJSVal(cx, args.rval(), std::string("<Error converting value to numbers>"));
|
||||
return true;
|
||||
}
|
||||
|
||||
ScriptInterface::ToJSVal(cx, args.rval(), buffer);
|
||||
return true;
|
||||
}
|
||||
|
@ -228,24 +228,7 @@ bool JSI_IGUIObject::getComputedSize(JSContext* cx, uint argc, JS::Value* vp)
|
||||
return false;
|
||||
|
||||
e->UpdateCachedSize();
|
||||
CRect size = e->m_CachedActualSize;
|
||||
ScriptInterface::ToJSVal(cx, args.rval(), e->m_CachedActualSize);
|
||||
|
||||
JS::RootedValue objVal(cx);
|
||||
try
|
||||
{
|
||||
ScriptInterface::GetScriptInterfaceAndCBData(cx)->pScriptInterface->CreateObject(
|
||||
&objVal,
|
||||
"left", size.left,
|
||||
"right", size.right,
|
||||
"top", size.top,
|
||||
"bottom", size.bottom);
|
||||
}
|
||||
catch (PSERROR_Scripting_ConversionFailed&)
|
||||
{
|
||||
debug_warn(L"Error creating size object!");
|
||||
return false;
|
||||
}
|
||||
|
||||
args.rval().set(objVal);
|
||||
return true;
|
||||
}
|
||||
|
@ -43,7 +43,6 @@ class PSERROR_GUI_OperationNeedsGUIObject : public PSERROR_GUI { public: PSERROR
|
||||
class PSERROR_GUI_UnableToParse : public PSERROR_GUI { public: PSERROR_GUI_UnableToParse(); PSERROR_GUI_UnableToParse(const char* msg); PSRETURN getCode() const; };
|
||||
class PSERROR_Game_World_MapLoadFailed : public PSERROR_Game_World { public: PSERROR_Game_World_MapLoadFailed(); PSERROR_Game_World_MapLoadFailed(const char* msg); PSRETURN getCode() const; };
|
||||
class PSERROR_Scripting_CallFunctionFailed : public PSERROR_Scripting { public: PSERROR_Scripting_CallFunctionFailed(); PSERROR_Scripting_CallFunctionFailed(const char* msg); PSRETURN getCode() const; };
|
||||
class PSERROR_Scripting_ConversionFailed : public PSERROR_Scripting { public: PSERROR_Scripting_ConversionFailed(); PSERROR_Scripting_ConversionFailed(const char* msg); PSRETURN getCode() const; };
|
||||
class PSERROR_Scripting_CreateObjectFailed : public PSERROR_Scripting { public: PSERROR_Scripting_CreateObjectFailed(); PSERROR_Scripting_CreateObjectFailed(const char* msg); PSRETURN getCode() const; };
|
||||
class PSERROR_Scripting_DefineConstantFailed : public PSERROR_Scripting { public: PSERROR_Scripting_DefineConstantFailed(); PSERROR_Scripting_DefineConstantFailed(const char* msg); PSRETURN getCode() const; };
|
||||
class PSERROR_Scripting_DefineType_AlreadyExists : public PSERROR_Scripting_DefineType { public: PSERROR_Scripting_DefineType_AlreadyExists(); PSERROR_Scripting_DefineType_AlreadyExists(const char* msg); PSRETURN getCode() const; };
|
||||
@ -90,12 +89,11 @@ extern const PSRETURN PSRETURN_Scripting_DefineType_CreationFailed = 0x08010002;
|
||||
extern const PSRETURN PSRETURN_Scripting_LoadFile_EvalErrors = 0x08020001;
|
||||
extern const PSRETURN PSRETURN_Scripting_LoadFile_OpenFailed = 0x08020002;
|
||||
extern const PSRETURN PSRETURN_Scripting_CallFunctionFailed = 0x08000001;
|
||||
extern const PSRETURN PSRETURN_Scripting_ConversionFailed = 0x08000002;
|
||||
extern const PSRETURN PSRETURN_Scripting_CreateObjectFailed = 0x08000003;
|
||||
extern const PSRETURN PSRETURN_Scripting_DefineConstantFailed = 0x08000004;
|
||||
extern const PSRETURN PSRETURN_Scripting_RegisterFunctionFailed = 0x08000005;
|
||||
extern const PSRETURN PSRETURN_Scripting_SetupFailed = 0x08000006;
|
||||
extern const PSRETURN PSRETURN_Scripting_TypeDoesNotExist = 0x08000007;
|
||||
extern const PSRETURN PSRETURN_Scripting_CreateObjectFailed = 0x08000002;
|
||||
extern const PSRETURN PSRETURN_Scripting_DefineConstantFailed = 0x08000003;
|
||||
extern const PSRETURN PSRETURN_Scripting_RegisterFunctionFailed = 0x08000004;
|
||||
extern const PSRETURN PSRETURN_Scripting_SetupFailed = 0x08000005;
|
||||
extern const PSRETURN PSRETURN_Scripting_TypeDoesNotExist = 0x08000006;
|
||||
extern const PSRETURN PSRETURN_Serialize_InvalidCharInString = 0x09000001;
|
||||
extern const PSRETURN PSRETURN_Serialize_InvalidScriptValue = 0x09000002;
|
||||
extern const PSRETURN PSRETURN_Serialize_OutOfBounds = 0x09000003;
|
||||
@ -189,18 +187,16 @@ extern const PSRETURN MASK__PSRETURN_Scripting_LoadFile_OpenFailed = 0xffffffff;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_LoadFile_OpenFailed = 0x08020002;
|
||||
extern const PSRETURN MASK__PSRETURN_Scripting_CallFunctionFailed = 0xffffffff;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_CallFunctionFailed = 0x08000001;
|
||||
extern const PSRETURN MASK__PSRETURN_Scripting_ConversionFailed = 0xffffffff;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_ConversionFailed = 0x08000002;
|
||||
extern const PSRETURN MASK__PSRETURN_Scripting_CreateObjectFailed = 0xffffffff;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_CreateObjectFailed = 0x08000003;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_CreateObjectFailed = 0x08000002;
|
||||
extern const PSRETURN MASK__PSRETURN_Scripting_DefineConstantFailed = 0xffffffff;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_DefineConstantFailed = 0x08000004;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_DefineConstantFailed = 0x08000003;
|
||||
extern const PSRETURN MASK__PSRETURN_Scripting_RegisterFunctionFailed = 0xffffffff;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_RegisterFunctionFailed = 0x08000005;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_RegisterFunctionFailed = 0x08000004;
|
||||
extern const PSRETURN MASK__PSRETURN_Scripting_SetupFailed = 0xffffffff;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_SetupFailed = 0x08000006;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_SetupFailed = 0x08000005;
|
||||
extern const PSRETURN MASK__PSRETURN_Scripting_TypeDoesNotExist = 0xffffffff;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_TypeDoesNotExist = 0x08000007;
|
||||
extern const PSRETURN CODE__PSRETURN_Scripting_TypeDoesNotExist = 0x08000006;
|
||||
extern const PSRETURN MASK__PSRETURN_Serialize_InvalidCharInString = 0xffffffff;
|
||||
extern const PSRETURN CODE__PSRETURN_Serialize_InvalidCharInString = 0x09000001;
|
||||
extern const PSRETURN MASK__PSRETURN_Serialize_InvalidScriptValue = 0xffffffff;
|
||||
@ -343,29 +339,25 @@ PSERROR_Scripting_CallFunctionFailed::PSERROR_Scripting_CallFunctionFailed() : P
|
||||
PSERROR_Scripting_CallFunctionFailed::PSERROR_Scripting_CallFunctionFailed(const char* msg) : PSERROR_Scripting(msg) { }
|
||||
PSRETURN PSERROR_Scripting_CallFunctionFailed::getCode() const { return 0x08000001; }
|
||||
|
||||
PSERROR_Scripting_ConversionFailed::PSERROR_Scripting_ConversionFailed() : PSERROR_Scripting(NULL) { }
|
||||
PSERROR_Scripting_ConversionFailed::PSERROR_Scripting_ConversionFailed(const char* msg) : PSERROR_Scripting(msg) { }
|
||||
PSRETURN PSERROR_Scripting_ConversionFailed::getCode() const { return 0x08000002; }
|
||||
|
||||
PSERROR_Scripting_CreateObjectFailed::PSERROR_Scripting_CreateObjectFailed() : PSERROR_Scripting(NULL) { }
|
||||
PSERROR_Scripting_CreateObjectFailed::PSERROR_Scripting_CreateObjectFailed(const char* msg) : PSERROR_Scripting(msg) { }
|
||||
PSRETURN PSERROR_Scripting_CreateObjectFailed::getCode() const { return 0x08000003; }
|
||||
PSRETURN PSERROR_Scripting_CreateObjectFailed::getCode() const { return 0x08000002; }
|
||||
|
||||
PSERROR_Scripting_DefineConstantFailed::PSERROR_Scripting_DefineConstantFailed() : PSERROR_Scripting(NULL) { }
|
||||
PSERROR_Scripting_DefineConstantFailed::PSERROR_Scripting_DefineConstantFailed(const char* msg) : PSERROR_Scripting(msg) { }
|
||||
PSRETURN PSERROR_Scripting_DefineConstantFailed::getCode() const { return 0x08000004; }
|
||||
PSRETURN PSERROR_Scripting_DefineConstantFailed::getCode() const { return 0x08000003; }
|
||||
|
||||
PSERROR_Scripting_RegisterFunctionFailed::PSERROR_Scripting_RegisterFunctionFailed() : PSERROR_Scripting(NULL) { }
|
||||
PSERROR_Scripting_RegisterFunctionFailed::PSERROR_Scripting_RegisterFunctionFailed(const char* msg) : PSERROR_Scripting(msg) { }
|
||||
PSRETURN PSERROR_Scripting_RegisterFunctionFailed::getCode() const { return 0x08000005; }
|
||||
PSRETURN PSERROR_Scripting_RegisterFunctionFailed::getCode() const { return 0x08000004; }
|
||||
|
||||
PSERROR_Scripting_SetupFailed::PSERROR_Scripting_SetupFailed() : PSERROR_Scripting(NULL) { }
|
||||
PSERROR_Scripting_SetupFailed::PSERROR_Scripting_SetupFailed(const char* msg) : PSERROR_Scripting(msg) { }
|
||||
PSRETURN PSERROR_Scripting_SetupFailed::getCode() const { return 0x08000006; }
|
||||
PSRETURN PSERROR_Scripting_SetupFailed::getCode() const { return 0x08000005; }
|
||||
|
||||
PSERROR_Scripting_TypeDoesNotExist::PSERROR_Scripting_TypeDoesNotExist() : PSERROR_Scripting(NULL) { }
|
||||
PSERROR_Scripting_TypeDoesNotExist::PSERROR_Scripting_TypeDoesNotExist(const char* msg) : PSERROR_Scripting(msg) { }
|
||||
PSRETURN PSERROR_Scripting_TypeDoesNotExist::getCode() const { return 0x08000007; }
|
||||
PSRETURN PSERROR_Scripting_TypeDoesNotExist::getCode() const { return 0x08000006; }
|
||||
|
||||
PSERROR_Serialize_InvalidCharInString::PSERROR_Serialize_InvalidCharInString() : PSERROR_Serialize(NULL) { }
|
||||
PSERROR_Serialize_InvalidCharInString::PSERROR_Serialize_InvalidCharInString(const char* msg) : PSERROR_Serialize(msg) { }
|
||||
@ -442,12 +434,11 @@ const char* GetErrorString(PSRETURN code)
|
||||
case 0x08020001: return "Scripting_LoadFile_EvalErrors";
|
||||
case 0x08020002: return "Scripting_LoadFile_OpenFailed";
|
||||
case 0x08000001: return "Scripting_CallFunctionFailed";
|
||||
case 0x08000002: return "Scripting_ConversionFailed";
|
||||
case 0x08000003: return "Scripting_CreateObjectFailed";
|
||||
case 0x08000004: return "Scripting_DefineConstantFailed";
|
||||
case 0x08000005: return "Scripting_RegisterFunctionFailed";
|
||||
case 0x08000006: return "Scripting_SetupFailed";
|
||||
case 0x08000007: return "Scripting_TypeDoesNotExist";
|
||||
case 0x08000002: return "Scripting_CreateObjectFailed";
|
||||
case 0x08000003: return "Scripting_DefineConstantFailed";
|
||||
case 0x08000004: return "Scripting_RegisterFunctionFailed";
|
||||
case 0x08000005: return "Scripting_SetupFailed";
|
||||
case 0x08000006: return "Scripting_TypeDoesNotExist";
|
||||
case 0x09000001: return "Serialize_InvalidCharInString";
|
||||
case 0x09000002: return "Serialize_InvalidScriptValue";
|
||||
case 0x09000003: return "Serialize_OutOfBounds";
|
||||
@ -493,12 +484,11 @@ void ThrowError(PSRETURN code)
|
||||
case 0x08020001: throw PSERROR_Scripting_LoadFile_EvalErrors(); break;
|
||||
case 0x08020002: throw PSERROR_Scripting_LoadFile_OpenFailed(); break;
|
||||
case 0x08000001: throw PSERROR_Scripting_CallFunctionFailed(); break;
|
||||
case 0x08000002: throw PSERROR_Scripting_ConversionFailed(); break;
|
||||
case 0x08000003: throw PSERROR_Scripting_CreateObjectFailed(); break;
|
||||
case 0x08000004: throw PSERROR_Scripting_DefineConstantFailed(); break;
|
||||
case 0x08000005: throw PSERROR_Scripting_RegisterFunctionFailed(); break;
|
||||
case 0x08000006: throw PSERROR_Scripting_SetupFailed(); break;
|
||||
case 0x08000007: throw PSERROR_Scripting_TypeDoesNotExist(); break;
|
||||
case 0x08000002: throw PSERROR_Scripting_CreateObjectFailed(); break;
|
||||
case 0x08000003: throw PSERROR_Scripting_DefineConstantFailed(); break;
|
||||
case 0x08000004: throw PSERROR_Scripting_RegisterFunctionFailed(); break;
|
||||
case 0x08000005: throw PSERROR_Scripting_SetupFailed(); break;
|
||||
case 0x08000006: throw PSERROR_Scripting_TypeDoesNotExist(); break;
|
||||
case 0x09000001: throw PSERROR_Serialize_InvalidCharInString(); break;
|
||||
case 0x09000002: throw PSERROR_Serialize_InvalidScriptValue(); break;
|
||||
case 0x09000003: throw PSERROR_Serialize_OutOfBounds(); break;
|
||||
|
@ -33,7 +33,6 @@ ERROR_SUBGROUP(Scripting, LoadFile);
|
||||
ERROR_TYPE(Scripting_LoadFile, OpenFailed);
|
||||
ERROR_TYPE(Scripting_LoadFile, EvalErrors);
|
||||
|
||||
ERROR_TYPE(Scripting, ConversionFailed);
|
||||
ERROR_TYPE(Scripting, CallFunctionFailed);
|
||||
ERROR_TYPE(Scripting, RegisterFunctionFailed);
|
||||
ERROR_TYPE(Scripting, DefineConstantFailed);
|
||||
|
Loading…
Reference in New Issue
Block a user