add error messages for invalid args to settimer()
This commit is contained in:
parent
baac43778e
commit
76e76bb95d
2 changed files with 10 additions and 5 deletions
|
@ -259,7 +259,7 @@ static naRef f_fgcommand(naContext c, naRef me, int argc, naRef* args)
|
||||||
// FGNasalSys::setTimer(). See there for docs.
|
// FGNasalSys::setTimer(). See there for docs.
|
||||||
static naRef f_settimer(naContext c, naRef me, int argc, naRef* args)
|
static naRef f_settimer(naContext c, naRef me, int argc, naRef* args)
|
||||||
{
|
{
|
||||||
nasalSys->setTimer(argc, args);
|
nasalSys->setTimer(c, argc, args);
|
||||||
return naNil();
|
return naNil();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -612,15 +612,20 @@ bool FGNasalSys::handleCommand(const SGPropertyNode* arg)
|
||||||
// "saved" somehow lest they be inadvertently cleaned. In this case,
|
// "saved" somehow lest they be inadvertently cleaned. In this case,
|
||||||
// they are inserted into a globals.__gcsave hash and removed on
|
// they are inserted into a globals.__gcsave hash and removed on
|
||||||
// expiration.
|
// expiration.
|
||||||
void FGNasalSys::setTimer(int argc, naRef* args)
|
void FGNasalSys::setTimer(naContext c, int argc, naRef* args)
|
||||||
{
|
{
|
||||||
// Extract the handler, delta, and simtime arguments:
|
// Extract the handler, delta, and simtime arguments:
|
||||||
naRef handler = argc > 0 ? args[0] : naNil();
|
naRef handler = argc > 0 ? args[0] : naNil();
|
||||||
if(!(naIsCode(handler) || naIsCCode(handler) || naIsFunc(handler)))
|
if(!(naIsCode(handler) || naIsCCode(handler) || naIsFunc(handler))) {
|
||||||
|
naRuntimeError(c, "settimer() with invalid function argument");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
naRef delta = argc > 1 ? args[1] : naNil();
|
naRef delta = argc > 1 ? args[1] : naNil();
|
||||||
if(naIsNil(delta)) return;
|
if(naIsNil(delta)) {
|
||||||
|
naRuntimeError(c, "settimer() with invalid time argument");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
bool simtime = (argc > 2 && naTrue(args[2])) ? false : true;
|
bool simtime = (argc > 2 && naTrue(args[2])) ? false : true;
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ public:
|
||||||
FGNasalScript* parseScript(const char* src, const char* name=0);
|
FGNasalScript* parseScript(const char* src, const char* name=0);
|
||||||
|
|
||||||
// Implementation of the settimer extension function
|
// Implementation of the settimer extension function
|
||||||
void setTimer(int argc, naRef* args);
|
void setTimer(naContext c, int argc, naRef* args);
|
||||||
|
|
||||||
// Implementation of the setlistener extension function
|
// Implementation of the setlistener extension function
|
||||||
naRef setListener(naContext c, int argc, naRef* args);
|
naRef setListener(naContext c, int argc, naRef* args);
|
||||||
|
|
Loading…
Add table
Reference in a new issue