]> git.mxchange.org Git - simgear.git/commitdiff
Frederic Bouvier:
authorehofman <ehofman>
Wed, 21 Jul 2004 10:52:40 +0000 (10:52 +0000)
committerehofman <ehofman>
Wed, 21 Jul 2004 10:52:40 +0000 (10:52 +0000)
I just discovered this : state() is not valid when _level==0,
because it is doing:
{ return _state_stack[_state_stack.size() - 1]; }
and is returning a wrong index fetch ( 0 - 1 ) == -1

Moreover, st is not used when _level==0 so the line can be moved
to a safer place.

simgear/props/props_io.cxx

index d6b38c62d51199d43012f39f35f5dbcdd80b093a..997ac971d3918f3e23c1279a0a6d848fa4947497 100644 (file)
@@ -133,7 +133,6 @@ checkFlag (const char * flag, bool defaultState = true)
 void
 PropsVisitor::startElement (const char * name, const XMLAttributes &atts)
 {
-  State &st = state();
   const char * attval;
 
   if (_level == 0) {
@@ -160,6 +159,7 @@ PropsVisitor::startElement (const char * name, const XMLAttributes &atts)
   }
 
   else {
+    State &st = state();
                                // Get the index.
     attval = atts.getValue("n");
     int index = 0;