]> git.mxchange.org Git - flightgear.git/commitdiff
Avoid creation of stray "/null" property nodes.
authorThorstenB <brehmt@gmail.com>
Sun, 10 Jul 2011 19:25:16 +0000 (21:25 +0200)
committerThorstenB <brehmt@gmail.com>
Sun, 10 Jul 2011 19:25:16 +0000 (21:25 +0200)
"property-assign" command had a side-effect of creating stray "/null"
nodes when assigning a value (since "getprop2" always creates some node).

src/Main/fg_commands.cxx

index 7711f6b4f0acc194326f5f109e98d871cd7e6fcb..ef2824089455b8afe005c4c7be6b50d29de4255b 100644 (file)
@@ -726,15 +726,18 @@ static bool
 do_property_assign (const SGPropertyNode * arg)
 {
   SGPropertyNode * prop = get_prop(arg);
-  const SGPropertyNode * prop2 = get_prop2(arg);
   const SGPropertyNode * value = arg->getNode("value");
 
   if (value != 0)
       return prop->setUnspecifiedValue(value->getStringValue());
-  else if (prop2)
-      return prop->setUnspecifiedValue(prop2->getStringValue());
   else
-      return false;
+  {
+      const SGPropertyNode * prop2 = get_prop2(arg);
+      if (prop2)
+          return prop->setUnspecifiedValue(prop2->getStringValue());
+      else
+          return false;
+  }
 }
 
 
@@ -1064,14 +1067,9 @@ static bool
 do_add_model (const SGPropertyNode * arg)
 {
     SGPropertyNode * model = fgGetNode("models", true);
-    for (int i = 0;; i++) {
-        if (i < 0)
-            return false;
-        if (!model->getChild("model", i, false)) {
-            model = model->getChild("model", i, true);
-            break;
-        }
-    }
+    int i;
+    for (i = 0; model->hasChild("model",i); i++);
+    model = model->getChild("model", i, true);
     copyProperties(arg, model);
     if (model->hasValue("elevation-m"))
         model->setDoubleValue("elevation-ft", model->getDoubleValue("elevation-m")