From 26a3573aea332d9a711924aefd7ea97a7d4a7940 Mon Sep 17 00:00:00 2001 From: Thomas Geymayer Date: Tue, 15 Oct 2013 17:48:13 +0200 Subject: [PATCH] Update/simplify for SimGear changes. --- src/Canvas/FGCanvasSystemAdapter.cxx | 35 ---------------------------- src/Canvas/FGCanvasSystemAdapter.hxx | 7 ------ src/Scripting/NasalCanvas.cxx | 4 ++-- src/Scripting/NasalSys.cxx | 14 +++-------- src/Scripting/NasalSys.hxx | 4 +--- 5 files changed, 6 insertions(+), 58 deletions(-) diff --git a/src/Canvas/FGCanvasSystemAdapter.cxx b/src/Canvas/FGCanvasSystemAdapter.cxx index a587dff16..0471118dd 100644 --- a/src/Canvas/FGCanvasSystemAdapter.cxx +++ b/src/Canvas/FGCanvasSystemAdapter.cxx @@ -20,7 +20,6 @@ #include
#include
-#include #include #include @@ -98,38 +97,4 @@ namespace canvas return 0; } - /** - * Get current FGNasalSys instance. - */ - static FGNasalSys* getNasalSys() - { - static FGNasalSys* nasal_sys = 0; - // TODO if Nasal is able to be removed and/or recreated at runtime we need - // to ensure that always the current instance is used - if( !nasal_sys ) - { - nasal_sys = dynamic_cast(globals->get_subsystem("nasal")); - if( !nasal_sys ) - throw std::runtime_error("FGCanvasSystemAdapter: no NasalSys"); - } - - return nasal_sys; - } - - //---------------------------------------------------------------------------- - naContext FGCanvasSystemAdapter::getNasalContext() const - { - return getNasalSys()->context(); - } - - //------------------------------------------------------------------------------ - naRef FGCanvasSystemAdapter::callMethod( naRef code, - naRef self, - int argc, - naRef* args, - naRef locals ) - { - return getNasalSys()->callMethod(code, self, argc, args, locals); - } - } diff --git a/src/Canvas/FGCanvasSystemAdapter.hxx b/src/Canvas/FGCanvasSystemAdapter.hxx index 7fca339f1..03ff2df36 100644 --- a/src/Canvas/FGCanvasSystemAdapter.hxx +++ b/src/Canvas/FGCanvasSystemAdapter.hxx @@ -31,13 +31,6 @@ namespace canvas virtual void addCamera(osg::Camera* camera) const; virtual void removeCamera(osg::Camera* camera) const; virtual osg::Image* getImage(const std::string& path) const; - - virtual naContext getNasalContext() const; - virtual naRef callMethod( naRef code, - naRef self, - int argc, - naRef* args, - naRef locals ); }; } diff --git a/src/Scripting/NasalCanvas.cxx b/src/Scripting/NasalCanvas.cxx index 67d9f728a..0df6133f0 100644 --- a/src/Scripting/NasalCanvas.cxx +++ b/src/Scripting/NasalCanvas.cxx @@ -226,10 +226,10 @@ naRef initNasalCanvas(naRef globals, naContext c) .member("size_y", &sc::Canvas::getSizeY) .method("_createGroup", &f_canvasCreateGroup) .method("_getGroup", &sc::Canvas::getGroup) - .method("addEventListener", &sc::Canvas::addNasalEventListener); + .method("addEventListener", &sc::Canvas::addEventListener); NasalElement::init("canvas.Element") .member("_node_ghost", &elementGetNode) - .method("addEventListener", &sc::Element::addNasalEventListener) + .method("addEventListener", &sc::Element::addEventListener) .method("getTransformedBounds", &f_elementGetTransformedBounds); NasalGroup::init("canvas.Group") .bases() diff --git a/src/Scripting/NasalSys.cxx b/src/Scripting/NasalSys.cxx index 278f97194..5015d1250 100644 --- a/src/Scripting/NasalSys.cxx +++ b/src/Scripting/NasalSys.cxx @@ -202,11 +202,12 @@ FGNasalSys::FGNasalSys() _context = 0; _globals = naNil(); _string = naNil(); - _callCount = 0; _log = new simgear::BufferedLogCallback(SG_NASAL, SG_INFO); _log->truncateAt(255); sglog().addCallback(_log); + + naSetErrorHandler(&logError); } // Utility. Sets a named key in a hash by C string, rather than nasal @@ -237,16 +238,7 @@ naRef FGNasalSys::call(naRef code, int argc, naRef* args, naRef locals) naRef FGNasalSys::callMethod(naRef code, naRef self, int argc, naRef* args, naRef locals) { - naContext ctx = naNewContext(); - if(_callCount) naModUnlock(); - _callCount++; - naRef result = naCall(ctx, code, argc, args, self, locals); - if(naGetError(ctx)) - logError(ctx); - _callCount--; - if(_callCount) naModLock(); - naFreeContext(ctx); - return result; + return naCallMethod(code, self, argc, args, locals); } FGNasalSys::~FGNasalSys() diff --git a/src/Scripting/NasalSys.hxx b/src/Scripting/NasalSys.hxx index 692cb3c77..b5b3d00d4 100644 --- a/src/Scripting/NasalSys.hxx +++ b/src/Scripting/NasalSys.hxx @@ -162,7 +162,7 @@ private: void loadPropertyScripts(SGPropertyNode* n); void loadScriptDirectory(simgear::Dir nasalDir); void addModule(std::string moduleName, simgear::PathList scripts); - void logError(naContext); + static void logError(naContext); naRef parse(const char* filename, const char* buf, int len); naRef genPropsModule(); @@ -172,8 +172,6 @@ private: SGPropertyNode_ptr _cmdArg; - int _callCount; - simgear::BufferedLogCallback* _log; public: void handleTimer(NasalTimer* t); -- 2.39.5