Date: Sunday, September 27, 2015 @ 18:25:29 Author: heftig Revision: 247543
FS#46448 crash Added: gnome-2048/trunk/0001-game-Make-new_game-work-in-the-case-of-game-not-alre.patch Modified: gnome-2048/trunk/PKGBUILD -----------------------------------------------------------------+ 0001-game-Make-new_game-work-in-the-case-of-game-not-alre.patch | 55 ++++++++++ PKGBUILD | 13 +- 2 files changed, 65 insertions(+), 3 deletions(-) Added: 0001-game-Make-new_game-work-in-the-case-of-game-not-alre.patch =================================================================== --- 0001-game-Make-new_game-work-in-the-case-of-game-not-alre.patch (rev 0) +++ 0001-game-Make-new_game-work-in-the-case-of-game-not-alre.patch 2015-09-27 16:25:29 UTC (rev 247543) @@ -0,0 +1,55 @@ +From 8a18366cb3c054f01ceef43b403cf0838937bb70 Mon Sep 17 00:00:00 2001 +From: Yanko Kaneti <yan...@declera.com> +Date: Sat, 26 Sep 2015 13:18:31 +0300 +Subject: [PATCH] game: Make new_game() work in the case of game not already + existing + +https://bugzilla.gnome.org/show_bug.cgi?id=755658 +--- + src/game.vala | 20 +++++++++----------- + 1 file changed, 9 insertions(+), 11 deletions(-) + +diff --git a/src/game.vala b/src/game.vala +index 4142223..d8673c6 100644 +--- a/src/game.vala ++++ b/src/game.vala +@@ -107,7 +107,11 @@ public class Game : GLib.Object + { + _grid.clear (); + _undo_stack.clear (); +- _clear_foreground (); ++ // new_game could be called without an existing game ++ if (_background == null) { ++ _init_background (); ++ } else ++ _clear_foreground (); + score = 0; + _state = GameState.SHOWING_FIRST_TILE; + _create_random_tile (); +@@ -148,19 +152,13 @@ public class Game : GLib.Object + try { + FileUtils.get_contents (_saved_path, out contents); + } catch (FileError e) { +- // FIXME: Returning false guarantees a crash, because _clear_foreground +- // will be called before _init_background(). Also, warning here makes no +- // sense, since restoring is expected to fail if no previously-saved game +- // exists. Someone needs to take a closer look at this to see what should +- // happen if this function needs to return false, or if it needs a return +- // value at all. +- +- // warning ("Failed to restore game: %s", e.message); +- // return false; ++ return false; + } + +- if (!_grid.load (contents)) ++ if (!_grid.load (contents)) { ++ warning ("Failed to restore game from saved file"); + return false; ++ } + + lines = contents.split ("\n"); + score = (uint)int.parse (lines[lines.length-2]); +-- +2.5.3 + Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-09-27 16:18:15 UTC (rev 247542) +++ PKGBUILD 2015-09-27 16:25:29 UTC (rev 247543) @@ -3,7 +3,7 @@ pkgname=gnome-2048 pkgver=3.18.0 -pkgrel=1 +pkgrel=2 pkgdesc="Obtain the 2048 tile" url="https://wiki.gnome.org/Apps/2048" arch=(x86_64 i686) @@ -13,9 +13,16 @@ groups=(gnome-extra) install=gnome-2048.install options=(!emptydirs) -source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz) -sha256sums=('87cf703f5dad02bb22ba464faa5fdf8a0784e64652de23b7f1c8685fc3d69938') +source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz + '0001-game-Make-new_game-work-in-the-case-of-game-not-alre.patch') +sha256sums=('87cf703f5dad02bb22ba464faa5fdf8a0784e64652de23b7f1c8685fc3d69938' + 'bb9eb8e5a977828aeadb974324742c0a5b16abf2a42533db95b1a372c85b16de') +prepare() { + cd $pkgname-$pkgver + patch -Np1 -i "../0001-game-Make-new_game-work-in-the-case-of-game-not-alre.patch" +} + build() { cd $pkgname-$pkgver ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var