[cogl] Backport an upstream fix for a totem crash

Kalev Lember kalev at fedoraproject.org
Fri May 23 09:52:05 UTC 2014


commit d38304e74abb1b850ad30d24b4d843adfbeaff36
Author: Kalev Lember <kalevlember at gmail.com>
Date:   Fri May 23 11:47:26 2014 +0200

    Backport an upstream fix for a totem crash
    
    https://bugzilla.gnome.org/show_bug.cgi?id=728064

 ...re-Keep-reference-on-potential-destinatio.patch |   58 ++++++++++++++++++++
 cogl.spec                                          |    9 +++-
 2 files changed, 66 insertions(+), 1 deletions(-)
---
diff --git a/0001-atlas-texture-Keep-reference-on-potential-destinatio.patch b/0001-atlas-texture-Keep-reference-on-potential-destinatio.patch
new file mode 100644
index 0000000..5388f39
--- /dev/null
+++ b/0001-atlas-texture-Keep-reference-on-potential-destinatio.patch
@@ -0,0 +1,58 @@
+From 5556241b67a58b1d28997e752ecf45244f6003d1 Mon Sep 17 00:00:00 2001
+From: Felix Riemann <friemann at gnome.org>
+Date: Sat, 12 Apr 2014 00:26:00 +0200
+Subject: [PATCH] atlas-texture: Keep reference on potential destination atlas
+
+When a new CoglAtlasTexture tries to fit into an existing CoglAtlas
+it should make sure the atlas stays valid while it expands.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=728064
+
+Reviewed-by: Neil Roberts <neil at linux.intel.com>
+(cherry picked from commit 2eec9758f67e9073371c2edd63379324849373c4)
+---
+ cogl/cogl-atlas-texture.c | 28 +++++++++++++++++++---------
+ 1 file changed, 19 insertions(+), 9 deletions(-)
+
+diff --git a/cogl/cogl-atlas-texture.c b/cogl/cogl-atlas-texture.c
+index beaaf24..1c8b569 100644
+--- a/cogl/cogl-atlas-texture.c
++++ b/cogl/cogl-atlas-texture.c
+@@ -746,15 +746,25 @@ allocate_space (CoglAtlasTexture *atlas_tex,
+ 
+   /* Look for an existing atlas that can hold the texture */
+   for (l = ctx->atlases; l; l = l->next)
+-    /* Try to make some space in the atlas for the texture */
+-    if (_cogl_atlas_reserve_space (atlas = l->data,
+-                                   /* Add two pixels for the border */
+-                                   width + 2, height + 2,
+-                                   atlas_tex))
+-      {
+-        cogl_object_ref (atlas);
+-        break;
+-      }
++    {
++      /* We need to take a reference on the atlas before trying to
++       * reserve space because in some circumstances atlas migration
++       * can cause the atlas to be freed */
++      atlas = cogl_object_ref (l->data);
++      /* Try to make some space in the atlas for the texture */
++      if (_cogl_atlas_reserve_space (atlas,
++                                     /* Add two pixels for the border */
++                                     width + 2, height + 2,
++                                     atlas_tex))
++        {
++          /* keep the atlas reference */
++          break;
++        }
++      else
++        {
++          cogl_object_unref (atlas);
++        }
++    }
+ 
+   /* If we couldn't find a suitable atlas then start another */
+   if (l == NULL)
+-- 
+1.9.3
+
diff --git a/cogl.spec b/cogl.spec
index 90e616a..e93ccfe 100644
--- a/cogl.spec
+++ b/cogl.spec
@@ -6,7 +6,7 @@
 
 Name:          cogl
 Version:       1.18.0
-Release:       2%{?dist}
+Release:       3%{?dist}
 Summary:       A library for using 3D graphics hardware to draw pretty pictures
 
 Group:         Development/Libraries
@@ -14,6 +14,9 @@ License:       LGPLv2+
 URL:           http://www.clutter-project.org/
 Source0:       http://download.gnome.org/sources/cogl/1.18/cogl-%{version}.tar.xz
 
+# Backported upstream fix for a totem crash
+Patch0:        0001-atlas-texture-Keep-reference-on-potential-destinatio.patch
+
 BuildRequires: cairo-devel
 BuildRequires: gdk-pixbuf2-devel
 BuildRequires: glib2-devel
@@ -84,6 +87,7 @@ This package contains the installable tests for %{cogl}.
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 CFLAGS="$RPM_OPT_FLAGS -fPIC"
@@ -142,6 +146,9 @@ rm %{buildroot}%{_datadir}/cogl/examples-data/crate.jpg
 %endif
 
 %changelog
+* Fri May 23 2014 Kalev Lember <kalevlember at gmail.com> - 1.18.0-3
+- Backport an upstream fix for a totem crash
+
 * Thu May 08 2014 Adam Jackson <ajax at redhat.com>
 - Add optional installed-tests subpackage
 


More information about the scm-commits mailing list