From 4a756768a286f20dc28bfab37a07252da00e232d Mon Sep 17 00:00:00 2001
From: till busch <buti@bux.at>
Date: Wed, 19 Mar 2008 13:25:12 +0100
Subject: [PATCH] use SGPropertyNode_ptr for all props in FGGlobals

---
 src/Main/globals.cxx |   55 ++++++++++++++++++++++---------------------------
 src/Main/globals.hxx |   14 ++++++------
 2 files changed, 32 insertions(+), 37 deletions(-)

diff --git a/src/Main/globals.cxx b/src/Main/globals.cxx
index 2bf3f08..b3c28f3 100644
--- a/src/Main/globals.cxx
+++ b/src/Main/globals.cxx
@@ -125,34 +125,32 @@ FGGlobals::~FGGlobals()
     // shut down all subsystems, make sure we take down the 
     // AIModels system first.
     subsystem_mgr->get_group(SGSubsystemMgr::GENERAL)->remove_subsystem("ai_model");
-     delete subsystem_mgr;
-     delete event_mgr;
-     delete time_params;
-     delete ephem;
-     delete mag;
-     delete matlib;
-     delete route_mgr;
-     delete current_panel;
-     delete soundmgr;
-     delete airports;
-
-     delete runways;
-     delete ATC_mgr;
-     delete AI_mgr;
-     delete controls;
-     delete viewmgr;
-
-     delete initial_state;
-//     //delete locale; Don't delete locale
+    delete subsystem_mgr;
+    delete event_mgr;
+    delete time_params;
+    delete ephem;
+    delete mag;
+    delete matlib;
+    delete route_mgr;
+    delete current_panel;
+    delete soundmgr;
+    delete airports;
+
+    delete runways;
+    delete ATC_mgr;
+    delete AI_mgr;
+    delete controls;
+    delete viewmgr;
+
 //     delete commands;
-     delete acmodel;
-     delete model_mgr;
-     delete channel_options_list;
-     delete initial_waypoints;
-     delete tile_mgr;
-     delete scenery;
-     delete io;
-     delete fontcache;
+    delete acmodel;
+    delete model_mgr;
+    delete channel_options_list;
+    delete initial_waypoints;
+    delete tile_mgr;
+    delete scenery;
+    delete io;
+    delete fontcache;
 
     delete navlist;
     delete loclist;
@@ -165,8 +163,6 @@ FGGlobals::~FGGlobals()
     delete fixlist;
     delete airwaynet;
     delete multiplayer_mgr;
- 
-    delete props;
 }
 
 
@@ -269,7 +265,6 @@ FGGlobals::get_event_mgr () const
 void
 FGGlobals::saveInitialState ()
 {
-  delete initial_state;
   initial_state = new SGPropertyNode();
 
   if (!copyProperties(props, initial_state))
diff --git a/src/Main/globals.hxx b/src/Main/globals.hxx
index 19f3a52..6781dfe 100644
--- a/src/Main/globals.hxx
+++ b/src/Main/globals.hxx
@@ -96,6 +96,13 @@ class FGGlobals
 
 private:
 
+    // properties, destroy last
+    SGPropertyNode_ptr props;
+    SGPropertyNode_ptr initial_state;
+
+    // localization
+    SGPropertyNode_ptr locale;
+
     FGRenderer *renderer;
     SGSubsystemMgr *subsystem_mgr;
     SGEventMgr *event_mgr;
@@ -161,13 +168,6 @@ private:
     // viewer manager
     FGViewMgr *viewmgr;
 
-    // properties
-    SGPropertyNode *props;
-    SGPropertyNode *initial_state;
-
-    // localization
-    SGPropertyNode *locale;
-
     SGCommandMgr *commands;
 
   //FGFlightPlanDispatcher *fpDispatcher;
-- 
1.5.2.5


