]> git.mxchange.org Git - flightgear.git/commitdiff
Not reported by cppcheck: fix another memory leak :)
authorThorstenB <brehmt@gmail.com>
Fri, 4 Feb 2011 18:38:22 +0000 (19:38 +0100)
committerThorstenB <brehmt@gmail.com>
Fri, 4 Feb 2011 18:38:22 +0000 (19:38 +0100)
Extends/changes commit 687be046789e2f509ccf93155456c47f3f463e0c
to fix a related second leak (with "model").

src/Model/modelmgr.cxx

index 181435ef1c76665603052b8a1039baa3ccd0f8f4..2e6ad72bcdaf19b498301a6f7503859cd14c1d7f 100644 (file)
@@ -70,10 +70,6 @@ FGModelMgr::add_model (SGPropertyNode * node)
 {
   SG_LOG(SG_GENERAL, SG_INFO,
          "Adding model " << node->getStringValue("name", "[unnamed]"));
-  Instance * instance = new Instance;
-  SGModelPlacement *model = new SGModelPlacement;
-  instance->model = model;
-  instance->node = node;
 
   const char *path = node->getStringValue("path", "Models/Geometry/glider.ac");
   osg::Node *object;
@@ -83,9 +79,13 @@ FGModelMgr::add_model (SGPropertyNode * node)
   } catch (const sg_throwable& t) {
     SG_LOG(SG_GENERAL, SG_ALERT, "Error loading " << path << ":\n  "
         << t.getFormattedMessage() << t.getOrigin());
-    delete instance;
     return;
   }
+  
+  Instance * instance = new Instance;
+  SGModelPlacement *model = new SGModelPlacement;
+  instance->model = model;
+  instance->node = node;
 
   model->init( object );