mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2024-11-08 00:37:15 +01:00
Update sqratFunction.h
This commit is contained in:
parent
405afbb72d
commit
e2528e88dd
@ -85,6 +85,33 @@ struct Function {
|
||||
if (value_type != OT_CLOSURE && value_type != OT_NATIVECLOSURE) {
|
||||
SQTHROW(vm, FormatTypeError(vm, idx, _SC("closure")));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
// Constructs a Function from a table off the stack at the specified index
|
||||
Function(HSQUIRRELVM vm, SQInteger idx, const SQChar* slot) {
|
||||
sq_pushstring(vm, slot, -1);
|
||||
#if !defined (SCRAT_NO_ERROR_CHECKING)
|
||||
if(SQ_FAILED(sq_get(vm, idx))) {
|
||||
sq_poptop(vm);
|
||||
sq_resetobject(&mEnv);
|
||||
sq_resetobject(&mObj);
|
||||
} else {
|
||||
sq_getstackobj(vm, -1, &mObj);
|
||||
sq_getstackobj(vm, idx, &mEnv);
|
||||
if (sq_type(mObj) == OT_CLOSURE || sq_type(mObj) == OT_NATIVECLOSURE) {
|
||||
sq_addref(vm, &mEnv);
|
||||
sq_addref(vm, &mObj);
|
||||
} else {
|
||||
sq_resetobject(&mEnv);
|
||||
sq_resetobject(&mObj);
|
||||
}
|
||||
sq_poptop(vm);
|
||||
}
|
||||
#else
|
||||
sq_get(vm, idx);
|
||||
sq_getstackobj(vm, -1, &mObj);
|
||||
sq_getstackobj(vm, idx, &mEnv);
|
||||
sq_poptop(vm);
|
||||
#endif
|
||||
}
|
||||
// Constructs a Function from a value off the stack at the specified index pointed by `idx2`
|
||||
|
Loading…
Reference in New Issue
Block a user