adonthell-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[adonthell-wastesedge-commits] Release_0-3-3 1d9d842 47/50: FIXED memlea


From: Kai Sterker
Subject: [adonthell-wastesedge-commits] Release_0-3-3 1d9d842 47/50: FIXED memleak (main_munu wasn't deleted at exit)
Date: Mon, 25 Jul 2016 18:15:34 +0000 (UTC)

tag: Release_0-3-3
commit 1d9d842ea53e2516a443d93dc1f3ef925c9a72bc
Author: Kai Sterker <address@hidden>
Commit: Kai Sterker <address@hidden>

    FIXED memleak (main_munu wasn't deleted at exit)
---
 scripts/init.py              |    7 ++++---
 scripts/modules/main_menu.py |   16 ++++++++++++----
 scripts/schedules/control.py |    4 +++-
 3 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/scripts/init.py b/scripts/init.py
index d1fd17f..c8474f8 100755
--- a/scripts/init.py
+++ b/scripts/init.py
@@ -84,8 +84,7 @@ class title_screen:
 
 
     def __del__ (self):
-        print "Destructor called"
-        adonthell.gamedata_engine ().main_quit ()
+        print "init: destructor called"
 
     # -- catch ESC key
     def on_update (self):
@@ -161,7 +160,7 @@ class title_screen:
         
         # -- once the menu is closed, see what we got
         retval = menu.get_result ()
-
+        
         # -- start new game
         if retval == 1:
             # -- let the player chose a name for his character
@@ -192,6 +191,8 @@ class title_screen:
         # -- quit the game
         else:
             adonthell.gamedata_engine ().main_quit ()
+            
+        adonthell.win_container.__del__ (menu)
 
     # -- cleanup
     def cleanup (self):
diff --git a/scripts/modules/main_menu.py b/scripts/modules/main_menu.py
index 3a6dded..3d76ca9 100755
--- a/scripts/modules/main_menu.py
+++ b/scripts/modules/main_menu.py
@@ -26,7 +26,7 @@ class main_menu (win_container):
     #   enable_b turns background/border on (1) or off (0)
     def __init__ (self, startup, enable_s, enable_b = 0):      
         win_container.__init__(self)
-
+        
         # -- Init Position
         self.move (0, 0)       
         self.resize (320, 240)
@@ -168,7 +168,10 @@ class main_menu (win_container):
             label.move (label.x () - 70, label.y () - 10)
             self.select.add (label)
 
-        # add the title
+        # -- cleanup
+        del self.labels
+        
+        # -- add the title
         self.set_align (win_base_ALIGN_CENTER)
         self.add (self.a_title)
         self.add (self.title)
@@ -186,6 +189,8 @@ class main_menu (win_container):
         if self.startup > 0:
             if self.create_menu (self.moves, self.goals) == 0:
                 self.add_to_select ()
+                del self.moves
+                del self.goals
                 self.startup = 0
                 
         # -- pressing ESC will close the menu if it's open
@@ -194,7 +199,7 @@ class main_menu (win_container):
             if self.enable_save == 0: self.retval = 5
             else: self.retval = 0
             gamedata_engine ().main_quit ()
-                    
+
 
     # -- Callback to get informed of the player's choice
     def on_select (self):
@@ -207,7 +212,7 @@ class main_menu (win_container):
         # -- Load Game
         if self.retval == 2:
             lg = data_screen (LOAD_SCREEN)
-            lg.set_activate (1)        
+            lg.set_activate (1)
             
             # -- hide the game menu if we are not on the title screen
             if self.enable_save == 1:
@@ -258,3 +263,6 @@ class main_menu (win_container):
             label.move (label.x () + j*mod, label.y ())
 
         return done
+
+    def __del__ (self):
+        pass
diff --git a/scripts/schedules/control.py b/scripts/schedules/control.py
index c222963..c33f05e 100644
--- a/scripts/schedules/control.py
+++ b/scripts/schedules/control.py
@@ -40,7 +40,9 @@ class control:
                 # -- continue
                 gamedata_player ().set_schedule_active (1)
                 gamedata_engine ().set_control_active (1)
-           
+
+            win_container.__del__ (menu)
+
 
         # -- shortcut to the load screen
         elif input_has_been_pushed (SDLK_l):



reply via email to

[Prev in Thread] Current Thread [Next in Thread]