]> git.mxchange.org Git - flightgear.git/commitdiff
f_alias: catch SGPropertyNode exceptions and generate runtime error
authormfranz <mfranz>
Thu, 13 Nov 2008 23:47:45 +0000 (23:47 +0000)
committermfranz <mfranz>
Thu, 13 Nov 2008 23:47:45 +0000 (23:47 +0000)
src/Scripting/nasal-props.cxx

index 359eb9131e2c1871160f59941b10b066a22d03d4..e6e542eae2ea8529597ebcf94afcbec2abe34724 100644 (file)
@@ -306,10 +306,12 @@ static naRef f_alias(naContext c, naRef me, int argc, naRef* args)
     NODEARG();
     SGPropertyNode* al;
     naRef prop = naVec_get(argv, 0);
-    if(naIsString(prop)) al = globals->get_props()->getNode(naStr_data(prop), true);
-    else if(naIsGhost(prop)) al = *(SGPropertyNode_ptr*)naGhost_ptr(prop);
-    else {
-        naRuntimeError(c, "props.alias() with bad argument");
+    try {
+        if(naIsString(prop)) al = globals->get_props()->getNode(naStr_data(prop), true);
+        else if(naIsGhost(prop)) al = *(SGPropertyNode_ptr*)naGhost_ptr(prop);
+        else throw string("props.alias() with bad argument");
+    } catch (const string& err) {
+        naRuntimeError(c, (char *)err.c_str());
         return naNil();
     }
     return naNum((*node)->alias(al));