[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