summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-10-16 22:06:45 -0700
committerBenjamin Otte <otte@redhat.com>2011-10-16 22:32:55 -0700
commit0790f6cfc478812d08a1ef4be5f5134ba952d5ef (patch)
tree5f0d3b6bdf7768eb43dd2f6ed6f93e1f8a34db5f
parente8e37ce1506a778c4b2e8fd667ca6861db415c55 (diff)
game: Fix refcounting for viewport and icon
-rw-r--r--libgame/game-game.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/libgame/game-game.c b/libgame/game-game.c
index f0f3e75..f8ff073 100644
--- a/libgame/game-game.c
+++ b/libgame/game-game.c
@@ -376,6 +376,14 @@ game_game_dispose (GObject *object)
game_game_unset_match (game);
+ if (game->icon) {
+ g_object_unref (game->icon);
+ game->icon = NULL;
+ }
+ if (game->viewport) {
+ g_object_unref (game->viewport);
+ game->viewport = NULL;
+ }
if (game->default_resources)
{
g_hash_table_destroy (game->default_resources);
@@ -531,10 +539,10 @@ game_game_set_property (GObject *object, guint param_id, const GValue *value, GP
}
break;
case PROP_ICON:
- game->icon = GAME_GRAPHIC (g_value_get_object (value));
+ game->icon = GAME_GRAPHIC (g_value_dup_object (value));
break;
case PROP_VIEWPORT:
- game->viewport = GAME_GRAPHIC (g_value_get_object (value));
+ game->viewport = GAME_GRAPHIC (g_value_dup_object (value));
break;
case PROP_TRANSLATION_DOMAIN:
if (g_value_get_string (value))