mirror of https://github.com/OpenTTD/OpenTTD
(svn r23496) -Fix: [Squirrel] Provide a proper error message when the _cmp meta-function doesn't return an integer
parent
686297c2c6
commit
8f36e70e35
|
@ -195,14 +195,19 @@ bool SQVM::ObjCmp(const SQObjectPtr &o1,const SQObjectPtr &o2,SQInteger &result)
|
||||||
case OT_INSTANCE:
|
case OT_INSTANCE:
|
||||||
if(_delegable(o1)->_delegate) {
|
if(_delegable(o1)->_delegate) {
|
||||||
Push(o1);Push(o2);
|
Push(o1);Push(o2);
|
||||||
if(CallMetaMethod(_delegable(o1),MT_CMP,2,res)) break;
|
if(CallMetaMethod(_delegable(o1),MT_CMP,2,res)) {
|
||||||
|
if(type(res) != OT_INTEGER) {
|
||||||
|
Raise_Error(_SC("_cmp must return an integer"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
_RET_SUCCEED(_integer(res))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//continues through (no break needed)
|
//continues through (no break needed)
|
||||||
default:
|
default:
|
||||||
_RET_SUCCEED( _userpointer(o1) < _userpointer(o2)?-1:1 );
|
_RET_SUCCEED( _userpointer(o1) < _userpointer(o2)?-1:1 );
|
||||||
}
|
}
|
||||||
if(type(res)!=OT_INTEGER) { Raise_CompareError(o1,o2); return false; }
|
assert(0);
|
||||||
_RET_SUCCEED(_integer(res));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|
Loading…
Reference in New Issue