1
0
Fork 0

while abort() is really only useful for listeners (in all other cases

we know the stack trace), it's better to use a separate function for
it, as this can be used conditionally, as in:

  setlistener("/the/property", func(n) {
      if (n.getValue() < 0) # who's writing negative numbers to /the/property?!
          abort();          # let's check the backtrace ...
  });
This commit is contained in:
mfranz 2008-06-19 17:18:42 +00:00
parent 37559fee21
commit dec96cfa45

View file

@ -347,6 +347,12 @@ static naRef f_srand(naContext c, naRef me, int argc, naRef* args)
return naNum(0); return naNum(0);
} }
static naRef f_abort(naContext c, naRef me, int argc, naRef* args)
{
abort();
return naNil();
}
// Return an array listing of all files in a directory // Return an array listing of all files in a directory
static naRef f_directory(naContext c, naRef me, int argc, naRef* args) static naRef f_directory(naContext c, naRef me, int argc, naRef* args)
{ {
@ -597,6 +603,7 @@ static struct { const char* name; naCFunction func; } funcs[] = {
{ "_interpolate", f_interpolate }, { "_interpolate", f_interpolate },
{ "rand", f_rand }, { "rand", f_rand },
{ "srand", f_srand }, { "srand", f_srand },
{ "abort", f_abort },
{ "directory", f_directory }, { "directory", f_directory },
{ "parsexml", f_parsexml }, { "parsexml", f_parsexml },
{ "systime", f_systime }, { "systime", f_systime },
@ -1023,7 +1030,6 @@ void FGNasalListener::valueChanged(SGPropertyNode* node)
if(_type < 2 && node != _node) return; // skip child events if(_type < 2 && node != _node) return; // skip child events
if(_type > 0 || changed(_node) || _first_call) if(_type > 0 || changed(_node) || _first_call)
call(node, naNum(0)); call(node, naNum(0));
if(_type == -1) abort();
_first_call = false; _first_call = false;
} }