X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=src%2FScripting%2FNasalSys.cxx;h=75c49fbcf5d05d7b262b1de836e01ba9d21569d9;hb=4b59c152eafb5aa52c4562838090f037c07b65e9;hp=fde6319dbd3949b97ef1383ebc39dc16a21d76c1;hpb=f4b7ae5da37ea857b346ae5f6fb7def872bf8a1d;p=flightgear.git diff --git a/src/Scripting/NasalSys.cxx b/src/Scripting/NasalSys.cxx index fde6319db..75c49fbcf 100644 --- a/src/Scripting/NasalSys.cxx +++ b/src/Scripting/NasalSys.cxx @@ -146,11 +146,14 @@ public: void invoke() { + if( _singleShot ) + // Callback may restart the timer, so update status before callback is + // called (Prevent warnings of deleting not existing tasks from the + // event manager). + _isRunning = false; + naRef *args = NULL; _sys->callMethod(_func, _self, 0, args, naNil() /* locals */); - if (_singleShot) { - _isRunning = false; - } } void setSingleShot(bool aSingleShot) @@ -705,7 +708,7 @@ static naRef f_parsexml(naContext c, naRef me, int argc, naRef* args) */ static naRef f_parse_markdown(naContext c, naRef me, int argc, naRef* args) { - nasal::CallContext ctx(c, argc, args); + nasal::CallContext ctx(c, me, argc, args); return ctx.to_nasal( simgear::SimpleMarkdown::parse(ctx.requireArg(0)) );