From 5c38395395065ce5d2de0cf479d35fc1861e624c Mon Sep 17 00:00:00 2001
From: Thomas Geymayer <tomgey@gmail.com>
Date: Wed, 16 Oct 2013 23:36:27 +0200
Subject: [PATCH] NasalSys: do not print invalid elements for error backtraces.

---
 src/Scripting/NasalSys.cxx | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/Scripting/NasalSys.cxx b/src/Scripting/NasalSys.cxx
index 5015d1250..ffef17dc6 100644
--- a/src/Scripting/NasalSys.cxx
+++ b/src/Scripting/NasalSys.cxx
@@ -988,12 +988,14 @@ void FGNasalSys::loadPropertyScripts(SGPropertyNode* n)
 // Logs a runtime error, with stack trace, to the FlightGear log stream
 void FGNasalSys::logError(naContext context)
 {
-    SG_LOG(SG_NASAL, SG_ALERT,
-           "Nasal runtime error: " << naGetError(context));
+    SG_LOG(SG_NASAL, SG_ALERT, "Nasal runtime error: " << naGetError(context));
+    int stack_depth = naStackDepth(context);
+    if( stack_depth < 1 )
+      return;
     SG_LOG(SG_NASAL, SG_ALERT,
            "  at " << naStr_data(naGetSourceFile(context, 0)) <<
            ", line " << naGetLine(context, 0));
-    for(int i=1; i<naStackDepth(context); i++)
+    for(int i=1; i<stack_depth; i++)
         SG_LOG(SG_NASAL, SG_ALERT,
                "  called from: " << naStr_data(naGetSourceFile(context, i)) <<
                ", line " << naGetLine(context, i));