diff options
author | Bruno 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) |
commit | 5c33f79fdf3bcace40be626bbf8353328f844c6d (patch) | |
tree | 940bbf07ec99ad82c2873fdfdb90995b88ace9e4 | |
parent | 8b4d7efb152c125392fd11a9cabd5b7273653c70 (diff) |
Fixed several small memory leaks.
-rw-r--r-- | ChangeLog | 23 | ||||
-rw-r--r-- | src/boards/awele.c | 5 | ||||
-rw-r--r-- | src/boards/chess.c | 5 | ||||
-rw-r--r-- | src/boards/clockgame.c | 7 | ||||
-rw-r--r-- | src/boards/crane.c | 6 | ||||
-rw-r--r-- | src/boards/draw.c | 6 | ||||
-rw-r--r-- | src/boards/erase.c | 24 | ||||
-rw-r--r-- | src/boards/fifteen.c | 5 | ||||
-rw-r--r-- | src/boards/leftright.c | 6 | ||||
-rw-r--r-- | src/boards/magic_hat.c | 6 | ||||
-rw-r--r-- | src/boards/maze.c | 6 | ||||
-rw-r--r-- | src/boards/missingletter.c | 5 | ||||
-rw-r--r-- | src/boards/money.c | 5 | ||||
-rw-r--r-- | src/boards/reading.c | 8 | ||||
-rw-r--r-- | src/boards/shapegame.c | 8 | ||||
-rw-r--r-- | src/boards/traffic.c | 6 | ||||
-rw-r--r-- | src/boards/wordprocessor.c | 6 | ||||
-rw-r--r-- | src/gcompris/gameutil.c | 6 |
18 files changed, 115 insertions, 28 deletions
@@ -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; |