Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Coudoin <bcoudoin@src.gnome.org>2006-04-03 23:04:43 (GMT)
committer Bruno Coudoin <bcoudoin@src.gnome.org>2006-04-03 23:04:43 (GMT)
commit5c33f79fdf3bcace40be626bbf8353328f844c6d (patch)
tree940bbf07ec99ad82c2873fdfdb90995b88ace9e4
parent8b4d7efb152c125392fd11a9cabd5b7273653c70 (diff)
Fixed several small memory leaks.
-rw-r--r--ChangeLog23
-rw-r--r--src/boards/awele.c5
-rw-r--r--src/boards/chess.c5
-rw-r--r--src/boards/clockgame.c7
-rw-r--r--src/boards/crane.c6
-rw-r--r--src/boards/draw.c6
-rw-r--r--src/boards/erase.c24
-rw-r--r--src/boards/fifteen.c5
-rw-r--r--src/boards/leftright.c6
-rw-r--r--src/boards/magic_hat.c6
-rw-r--r--src/boards/maze.c6
-rw-r--r--src/boards/missingletter.c5
-rw-r--r--src/boards/money.c5
-rw-r--r--src/boards/reading.c8
-rw-r--r--src/boards/shapegame.c8
-rw-r--r--src/boards/traffic.c6
-rw-r--r--src/boards/wordprocessor.c6
-rw-r--r--src/gcompris/gameutil.c6
18 files changed, 115 insertions, 28 deletions
diff --git a/ChangeLog b/ChangeLog
index 0e7b82b..86ea711 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2006-04-04 Bruno coudoin <bruno.coudoin@free.fr>
+
+ Fixed several small memory leaks.
+
+ * src/boards/awele.c: (awele_next_level):
+ * src/boards/chess.c: (chess_next_level):
+ * src/boards/clockgame.c: (start_board):
+ * src/boards/crane.c: (start_board):
+ * src/boards/draw.c: (start_board):
+ * src/boards/erase.c: (erase_create_item):
+ * src/boards/fifteen.c: (fifteen_next_level):
+ * src/boards/leftright.c: (start_board):
+ * src/boards/magic_hat.c: (start_board):
+ * src/boards/maze.c: (start_board):
+ * src/boards/missingletter.c: (start_board):
+ * src/boards/money.c: (money_next_level):
+ * src/boards/reading.c: (start_board):
+ * src/boards/shapegame.c: (start_board):
+ * src/boards/traffic.c: (start_board):
+ * src/boards/wordprocessor.c: (start_board):
+ * src/gcompris/gameutil.c: (gcompris_board_has_activity),
+ (gcompris_get_menulist), (gcompris_dialog):
+
2006-03-31 Yves Combe <yves@ycombe.net>
Stupid bug in substracion memory (typo).
diff --git a/src/boards/awele.c b/src/boards/awele.c
index d197e24..25a2959 100644
--- a/src/boards/awele.c
+++ b/src/boards/awele.c
@@ -238,9 +238,12 @@ set_level (guint level)
static void
awele_next_level ()
{
+ gchar *img;
+ img = gcompris_image_to_skin ("gcompris-bg.jpg");
gcompris_set_background (gnome_canvas_root (gcomprisBoard->canvas),
- gcompris_image_to_skin ("gcompris-bg.jpg"));
+ img);
+ g_free(img);
gcompris_bar_set_level (gcomprisBoard);
diff --git a/src/boards/chess.c b/src/boards/chess.c
index 1ae3816..72b92ac 100644
--- a/src/boards/chess.c
+++ b/src/boards/chess.c
@@ -299,9 +299,12 @@ static void chess_next_level()
{
register Square square;
register gshort rank;
+ gchar *img;
+ img = gcompris_image_to_skin("gcompris-bg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("gcompris-bg.jpg"));
+ img);
+ g_free(img);
gcompris_bar_set_level(gcomprisBoard);
diff --git a/src/boards/clockgame.c b/src/boards/clockgame.c
index 7b7bead..c108e71 100644
--- a/src/boards/clockgame.c
+++ b/src/boards/clockgame.c
@@ -1,6 +1,6 @@
/* gcompris - clockgame.c
*
- * Time-stamp: <2006/03/22 00:08:12 yves>
+ * Time-stamp: <2006/04/04 00:00:06 bruno>
*
* Copyright (C) 2000 Bruno Coudoin
*
@@ -130,10 +130,13 @@ static void start_board (GcomprisBoard *agcomprisBoard)
if(agcomprisBoard!=NULL)
{
+ gchar *img;
gcomprisBoard=agcomprisBoard;
+ img = gcompris_image_to_skin("clockgame-bg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("clockgame-bg.jpg"));
+ img);
+ g_free(img);
/* set initial values for this level adjusted to fit the watch background */
cx = gcomprisBoard->width/2;
diff --git a/src/boards/crane.c b/src/boards/crane.c
index e17cb8b..4ae2dbd 100644
--- a/src/boards/crane.c
+++ b/src/boards/crane.c
@@ -195,6 +195,8 @@ static void start_board (GcomprisBoard *agcomprisBoard)
{
if (agcomprisBoard != NULL) {
+ gchar *img;
+
gcomprisBoard = agcomprisBoard;
gcomprisBoard->level = 1;
gcomprisBoard->maxlevel = MAX_LEVEL;
@@ -202,8 +204,10 @@ static void start_board (GcomprisBoard *agcomprisBoard)
gcomprisBoard->number_of_sublevel = 1; /* Go to next level after this number of 'play' */
gcompris_bar_set(GCOMPRIS_BAR_LEVEL);
+ img = gcompris_image_to_skin("gcompris-bg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("gcompris-bg.jpg"));
+ img);
+ g_free(img);
crane_next_level();
diff --git a/src/boards/draw.c b/src/boards/draw.c
index d40b7ed..a2f9638 100644
--- a/src/boards/draw.c
+++ b/src/boards/draw.c
@@ -260,13 +260,17 @@ static void start_board (GcomprisBoard *agcomprisBoard)
if(agcomprisBoard!=NULL)
{
+ gchar *img;
+
gcomprisBoard=agcomprisBoard;
/* disable im_context */
gcomprisBoard->disable_im_context = TRUE;
+ img = gcompris_image_to_skin("gcompris-bg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("gcompris-bg.jpg"));
+ img);
+ g_free(img);
/* set initial values for this level */
diff --git a/src/boards/erase.c b/src/boards/erase.c
index 00e57d3..03a76b3 100644
--- a/src/boards/erase.c
+++ b/src/boards/erase.c
@@ -25,6 +25,7 @@
#include "gcompris/gcompris.h"
#define SOUNDLISTFILE PACKAGE
+#define MAX_LAYERS 3
static GcomprisBoard *gcomprisBoard = NULL;
static gboolean board_paused = TRUE;
@@ -324,7 +325,9 @@ static GnomeCanvasItem *erase_create_item(int layer)
int i,j;
int ix, jy;
GnomeCanvasItem *item = NULL;
- GdkPixbuf *pixmap[3];
+ GdkPixbuf *pixmap[MAX_LAYERS];
+
+ assert(layer<=MAX_LAYERS);
boardRootItem = GNOME_CANVAS_GROUP(
gnome_canvas_item_new (gnome_canvas_root(gcomprisBoard->canvas),
@@ -335,9 +338,17 @@ static GnomeCanvasItem *erase_create_item(int layer)
number_of_item = 0;
- pixmap[0] = gcompris_load_pixmap("images/transparent_square.png");
- pixmap[1] = gcompris_load_pixmap("images/water_spot.png");
- pixmap[2] = gcompris_load_pixmap("images/water_drop.png");
+ for(i=0; i<MAX_LAYERS; i++)
+ pixmap[i] = NULL;
+
+ if(layer>0)
+ pixmap[0] = gcompris_load_pixmap("images/transparent_square.png");
+
+ if(layer>1)
+ pixmap[1] = gcompris_load_pixmap("images/water_spot.png");
+
+ if(layer>2)
+ pixmap[2] = gcompris_load_pixmap("images/water_drop.png");
for(i=0,ix=0; i<BOARDWIDTH; i+=BOARDWIDTH/number_of_item_x, ix++)
{
@@ -373,8 +384,9 @@ static GnomeCanvasItem *erase_create_item(int layer)
}
}
- for(i=layer-1; i>=0; i--)
- gdk_pixbuf_unref(pixmap[i]);
+ for(i=0; i<MAX_LAYERS; i++)
+ if(pixmap[i])
+ gdk_pixbuf_unref(pixmap[i]);
return NULL;
}
diff --git a/src/boards/fifteen.c b/src/boards/fifteen.c
index 146126a..b2d4fc4 100644
--- a/src/boards/fifteen.c
+++ b/src/boards/fifteen.c
@@ -162,9 +162,12 @@ static gboolean is_our_board (GcomprisBoard *gcomprisBoard)
/* set initial values for the next level */
static void fifteen_next_level()
{
+ gchar *img;
+ img = gcompris_image_to_skin("gcompris-bg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("gcompris-bg.jpg"));
+ img);
+ g_free(img);
gcompris_bar_set_level(gcomprisBoard);
diff --git a/src/boards/leftright.c b/src/boards/leftright.c
index 939a57c..c84e6a5 100644
--- a/src/boards/leftright.c
+++ b/src/boards/leftright.c
@@ -148,9 +148,13 @@ static void pause_board (gboolean pause)
* =====================================================================*/
static void start_board (GcomprisBoard *agcomprisBoard) {
if(agcomprisBoard!=NULL) {
+ gchar *img;
+
gcomprisBoard=agcomprisBoard;
+ img = gcompris_image_to_skin("leftright-bg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("leftright-bg.jpg"));
+ img);
+ g_free(img);
gcomprisBoard->level=1;
gcomprisBoard->maxlevel=NUMBER_OF_LEVELS;
gcomprisBoard->sublevel=1;
diff --git a/src/boards/magic_hat.c b/src/boards/magic_hat.c
index 420cb06..1f411fb 100644
--- a/src/boards/magic_hat.c
+++ b/src/boards/magic_hat.c
@@ -163,6 +163,8 @@ static void start_board (GcomprisBoard *agcomprisBoard)
{
if (agcomprisBoard != NULL) {
+ gchar *img;
+
gcomprisBoard = agcomprisBoard;
gcomprisBoard->level = 1;
gcomprisBoard->maxlevel = 9;
@@ -177,7 +179,9 @@ static void start_board (GcomprisBoard *agcomprisBoard)
else
board_mode = DEFAULT_MODE;
- gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas), gcompris_image_to_skin("gcompris-bg.jpg"));
+ img = gcompris_image_to_skin("gcompris-bg.jpg");
+ gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas), img);
+ g_free(img);
magic_hat_next_level();
diff --git a/src/boards/maze.c b/src/boards/maze.c
index e824610..bd6667a 100644
--- a/src/boards/maze.c
+++ b/src/boards/maze.c
@@ -183,13 +183,17 @@ static void start_board (GcomprisBoard *agcomprisBoard) {
GdkPixbuf *pixmap = NULL;
if(agcomprisBoard!=NULL) {
+ gchar *img;
+
gcomprisBoard=agcomprisBoard;
/* disable im_context */
gcomprisBoard->disable_im_context = TRUE;
+ img = gcompris_image_to_skin("gcompris-bg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("gcompris-bg.jpg"));
+ img);
+ g_free(img);
gcomprisBoard->level=1;
gcomprisBoard->maxlevel=9;
diff --git a/src/boards/missingletter.c b/src/boards/missingletter.c
index 2a1d77c..24f7afa 100644
--- a/src/boards/missingletter.c
+++ b/src/boards/missingletter.c
@@ -160,9 +160,12 @@ static void start_board (GcomprisBoard *agcomprisBoard)
if(agcomprisBoard!=NULL)
{
+ gchar *img;
gcomprisBoard=agcomprisBoard;
+ img = gcompris_image_to_skin("missingletter-bg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("missingletter-bg.jpg"));
+ img);
+ g_free(img);
gcomprisBoard->level=1;
gcomprisBoard->maxlevel=NUMBER_OF_LEVELS;
gcomprisBoard->sublevel=1;
diff --git a/src/boards/money.c b/src/boards/money.c
index 3d648bd..b879b91 100644
--- a/src/boards/money.c
+++ b/src/boards/money.c
@@ -207,9 +207,12 @@ static void money_next_level()
guint number_of_item;
guint i;
gchar *display_format;
+ gchar *img;
+ img = gcompris_image_to_skin("money-bg.png");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("money-bg.png"));
+ img);
+ g_free(img);
gcompris_bar_set_level(gcomprisBoard);
diff --git a/src/boards/reading.c b/src/boards/reading.c
index 88ed640..49b0f66 100644
--- a/src/boards/reading.c
+++ b/src/boards/reading.c
@@ -1,6 +1,6 @@
/* gcompris - reading.c
*
- * Time-stamp: <2006/03/19 22:59:13 yves>
+ * Time-stamp: <2006/04/04 00:04:46 bruno>
*
* Copyright (C) 2000 Bruno Coudoin
*
@@ -180,10 +180,14 @@ static void start_board (GcomprisBoard *agcomprisBoard)
if(agcomprisBoard!=NULL)
{
+ gchar *img;
+
gcomprisBoard=agcomprisBoard;
+ img = gcompris_image_to_skin("reading-bg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("reading-bg.jpg"));
+ img);
+ g_free(img);
wait_for_ready = TRUE;
gamewon = FALSE;
diff --git a/src/boards/shapegame.c b/src/boards/shapegame.c
index d0f61ee..c8575b0 100644
--- a/src/boards/shapegame.c
+++ b/src/boards/shapegame.c
@@ -1,6 +1,6 @@
/* gcompris - shapegame.c
*
- * Time-stamp: <2006/03/19 22:57:35 yves>
+ * Time-stamp: <2006/04/04 00:05:12 bruno>
*
* Copyright (C) 2000 Bruno Coudoin
*
@@ -286,9 +286,13 @@ static void start_board (GcomprisBoard *agcomprisBoard)
if(default_background)
{
+ gchar *img;
+
// Default case, load the default background
+ img = gcompris_image_to_skin("gcompris-shapebg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("gcompris-shapebg.jpg"));
+ img);
+ g_free(img);
}
shapegame_next_level();
diff --git a/src/boards/traffic.c b/src/boards/traffic.c
index 3fdae80..9f1959a 100644
--- a/src/boards/traffic.c
+++ b/src/boards/traffic.c
@@ -148,6 +148,8 @@ static void start_board (GcomprisBoard *agcomprisBoard)
if(agcomprisBoard!=NULL)
{
+ gchar *img;
+
gcomprisBoard=agcomprisBoard;
gcomprisBoard->level=1;
gcomprisBoard->maxlevel=8;
@@ -169,8 +171,10 @@ static void start_board (GcomprisBoard *agcomprisBoard)
gcompris_bar_set(GCOMPRIS_BAR_LEVEL|GCOMPRIS_BAR_REPEAT);
}
+ img = gcompris_image_to_skin("traffic-bg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("traffic-bg.jpg"));
+ img);
+ g_free(img);
traffic_next_level();
diff --git a/src/boards/wordprocessor.c b/src/boards/wordprocessor.c
index 9e4966b..725fe21 100644
--- a/src/boards/wordprocessor.c
+++ b/src/boards/wordprocessor.c
@@ -153,6 +153,8 @@ static void start_board (GcomprisBoard *agcomprisBoard)
if(agcomprisBoard!=NULL)
{
+ gchar *img;
+
gcomprisBoard=agcomprisBoard;
gcomprisBoard->level=1;
gcomprisBoard->maxlevel=1;
@@ -160,8 +162,10 @@ static void start_board (GcomprisBoard *agcomprisBoard)
gcomprisBoard->number_of_sublevel=1; /* Go to next level after this number of 'play' */
gcompris_bar_set(0);
+ img = gcompris_image_to_skin("gcompris-shapebg.jpg");
gcompris_set_background(gnome_canvas_root(gcomprisBoard->canvas),
- gcompris_image_to_skin("gcompris-shapebg.jpg"));
+ img);
+ g_free(img);
wordprocessor_create();
diff --git a/src/gcompris/gameutil.c b/src/gcompris/gameutil.c
index ef2099c..ee61019 100644
--- a/src/gcompris/gameutil.c
+++ b/src/gcompris/gameutil.c
@@ -1,6 +1,6 @@
/* gcompris - gameutil.c
*
- * Time-stamp: <2006/03/30 23:28:50 bruno>
+ * Time-stamp: <2006/04/04 00:21:44 bruno>
*
* Copyright (C) 2000 Bruno Coudoin
*
@@ -697,7 +697,6 @@ gcompris_board_has_activity(gchar *section, gchar *name)
(strcmp (board->name, "experimental") == 0))
continue;
- printf(" section_name=%s, board->section=%s\n", section_name, board->section);
if ((strcmp (section_name, board->section) == 0) &&
(strlen(board->name) != 0) &&
board_check_file(board))
@@ -750,7 +749,6 @@ GList *gcompris_get_menulist(gchar *section)
continue;
if (strcmp (section, board->section) == 0) {
- printf("section=%s board->section=%s board->name=%s\n", section, board->section, board->name);
if (strlen(board->name) != 0)
{
if(strcmp(board->type, "menu") == 0)
@@ -1137,7 +1135,7 @@ void gcompris_dialog(gchar *str, DialogBoxCallBack dbcb)
GtkTextBuffer *buffer;
GtkTextTag *txt_tag;
- printf("Dialog=%s\n", str);
+ g_warning("Dialog=%s\n", str);
if(!gcomprisBoard)
return;