[Scummvm-cvs-logs] SF.net SVN: scummvm:[39660] scummvm/trunk/engines/sci/gfx/menubar.cpp

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Tue Mar 24 13:01:54 CET 2009


Revision: 39660
          http://scummvm.svn.sourceforge.net/scummvm/?rev=39660&view=rev
Author:   fingolfin
Date:     2009-03-24 12:01:54 +0000 (Tue, 24 Mar 2009)

Log Message:
-----------
SCI: Fixed some leaks introduced by my previous changes

Modified Paths:
--------------
    scummvm/trunk/engines/sci/gfx/menubar.cpp

Modified: scummvm/trunk/engines/sci/gfx/menubar.cpp
===================================================================
--- scummvm/trunk/engines/sci/gfx/menubar.cpp	2009-03-24 11:31:16 UTC (rev 39659)
+++ scummvm/trunk/engines/sci/gfx/menubar.cpp	2009-03-24 12:01:54 UTC (rev 39660)
@@ -101,7 +101,7 @@
 
 void Menubar::addMenu(gfx_state_t *state, const char *title, const char *entries, int font, reg_t entries_base) {
 	char tracker;
-	char *left = NULL, *right;
+	char *left = NULL;
 	reg_t left_origin = entries_base;
 	int string_len = 0;
 	int tag = 0, c_width, max_width = 0;
@@ -150,6 +150,7 @@
 					max_width = c_width;
 
 				string_len = 0;
+				free(left);
 				left = NULL; // Start over
 			} else if (tracker == '`') { // Start of right string
 				if (!left) {
@@ -165,7 +166,7 @@
 			if ((tracker == ':') || (tracker == 0)) { // End of entry
 				int key, modifiers = 0;
 
-				right = sci_strndup(entries - string_len - 1, string_len);
+				char *right = sci_strndup(entries - string_len - 1, string_len);
 
 				if (right[0] == '#') {
 					right[0] = SCI_SPECIAL_CHAR_FUNCTION; // Function key
@@ -190,7 +191,7 @@
 					if (right[2] == '=') {
 						tag = atoi(right + 3);
 						right[2] = 0;
-					};
+					}
 				} else {
 					if (right[0] == '^') {
 						right[0] = SCI_SPECIAL_CHAR_CTRL; // Control key - there must be a replacement...
@@ -230,6 +231,8 @@
 					max_width = c_width;
 
 				string_len = 0;
+				free(right);
+				free(left);
 				left = NULL;  // Start over
 
 			} else


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list