[arch-commits] Commit in cairo/trunk (2 files)
Date: Monday, May 18, 2020 @ 13:45:29 Author: heftig Revision: 385458 1.17.2+25+gaee96d175-1 Modified: cairo/trunk/PKGBUILD Deleted: cairo/trunk/0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch -+ 0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch | 27 -- PKGBUILD| 15 + 2 files changed, 5 insertions(+), 37 deletions(-) Deleted: 0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch === --- 0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch 2020-05-18 11:08:52 UTC (rev 385457) +++ 0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch 2020-05-18 13:45:29 UTC (rev 385458) @@ -1,27 +0,0 @@ -From d0dccb92c520556aaa02bd1fdf8f2922cef00292 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" -Date: Sat, 5 Oct 2019 14:07:28 +0200 -Subject: [PATCH] image compositor: Remove the right glyph from pixman's cache - -We need to use the index including the phase. Otherwise we leave glyphs -in the cache that cause problems later as indices are reused. - src/cairo-image-compositor.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c -index 6fccb79f1..79ad69f68 100644 a/src/cairo-image-compositor.c -+++ b/src/cairo-image-compositor.c -@@ -841,7 +841,7 @@ _cairo_image_scaled_glyph_fini (cairo_scaled_font_t *scaled_font, - if (global_glyph_cache) { - pixman_glyph_cache_remove ( - global_glyph_cache, scaled_font, -- (void *)_cairo_scaled_glyph_index (scaled_glyph)); -+ (void *)scaled_glyph->hash_entry.hash); - } - - CAIRO_MUTEX_UNLOCK (_cairo_glyph_cache_mutex); --- -2.23.0 - Modified: PKGBUILD === --- PKGBUILD2020-05-18 11:08:52 UTC (rev 385457) +++ PKGBUILD2020-05-18 13:45:29 UTC (rev 385458) @@ -2,8 +2,8 @@ # Contributor: Brice Carpentier pkgname=cairo -pkgver=1.17.2+17+g52a7c79fd -pkgrel=2 +pkgver=1.17.2+25+gaee96d175 +pkgrel=1 pkgdesc="2D graphics library with support for multiple output devices" url="https://cairographics.org/"; arch=(x86_64) @@ -11,11 +11,9 @@ depends=(libpng libxrender libxext fontconfig pixman glib2 lzo) makedepends=(librsvg gtk2 poppler-glib libspectre gtk-doc valgrind git) checkdepends=(ttf-dejavu gsfonts) -_commit=52a7c79fd4ff96bb5fac175f0199819b0f8c18fc # master -source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit"; -0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch) -sha256sums=('SKIP' -'262bf1cebc04eaae93dbfab56045ad800b3b027be303ca2611375645108f171f') +_commit=aee96d175d8349945a6d1948a56abd4b4ec6ad84 # master +source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit";) +sha256sums=('SKIP') pkgver() { cd cairo @@ -25,9 +23,6 @@ prepare() { cd cairo - # https://bugs.archlinux.org/task/63856 - patch -Np1 -i ../0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch - # Update gtk-doc cp /usr/share/aclocal/gtk-doc.m4 build/aclocal.gtk-doc.m4 cp /usr/share/gtk-doc/data/gtk-doc.make build/Makefile.am.gtk-doc
[arch-commits] Commit in cairo/trunk (2 files)
Date: Saturday, October 5, 2019 @ 12:24:36 Author: heftig Revision: 363834 1.17.2+17+g52a7c79fd-2 Added: cairo/trunk/0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch Modified: cairo/trunk/PKGBUILD -+ 0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch | 27 ++ PKGBUILD| 11 ++-- 2 files changed, 35 insertions(+), 3 deletions(-) Added: 0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch === --- 0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch (rev 0) +++ 0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch 2019-10-05 12:24:36 UTC (rev 363834) @@ -0,0 +1,27 @@ +From d0dccb92c520556aaa02bd1fdf8f2922cef00292 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Sat, 5 Oct 2019 14:07:28 +0200 +Subject: [PATCH] image compositor: Remove the right glyph from pixman's cache + +We need to use the index including the phase. Otherwise we leave glyphs +in the cache that cause problems later as indices are reused. +--- + src/cairo-image-compositor.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c +index 6fccb79f1..79ad69f68 100644 +--- a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c +@@ -841,7 +841,7 @@ _cairo_image_scaled_glyph_fini (cairo_scaled_font_t *scaled_font, + if (global_glyph_cache) { + pixman_glyph_cache_remove ( + global_glyph_cache, scaled_font, +- (void *)_cairo_scaled_glyph_index (scaled_glyph)); ++ (void *)scaled_glyph->hash_entry.hash); + } + + CAIRO_MUTEX_UNLOCK (_cairo_glyph_cache_mutex); +-- +2.23.0 + Modified: PKGBUILD === --- PKGBUILD2019-10-05 09:08:49 UTC (rev 363833) +++ PKGBUILD2019-10-05 12:24:36 UTC (rev 363834) @@ -3,7 +3,7 @@ pkgname=cairo pkgver=1.17.2+17+g52a7c79fd -pkgrel=1 +pkgrel=2 pkgdesc="2D graphics library with support for multiple output devices" url="https://cairographics.org/"; arch=(x86_64) @@ -12,8 +12,10 @@ makedepends=(librsvg gtk2 poppler-glib libspectre gtk-doc valgrind git) checkdepends=(ttf-dejavu gsfonts) _commit=52a7c79fd4ff96bb5fac175f0199819b0f8c18fc # master -source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit";) -sha256sums=('SKIP') +source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit"; +0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch) +sha256sums=('SKIP' +'262bf1cebc04eaae93dbfab56045ad800b3b027be303ca2611375645108f171f') pkgver() { cd cairo @@ -23,6 +25,9 @@ prepare() { cd cairo + # https://bugs.archlinux.org/task/63856 + patch -Np1 -i ../0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch + # Update gtk-doc cp /usr/share/aclocal/gtk-doc.m4 build/aclocal.gtk-doc.m4 cp /usr/share/gtk-doc/data/gtk-doc.make build/Makefile.am.gtk-doc
[arch-commits] Commit in cairo/trunk (2 files)
Date: Friday, August 2, 2019 @ 14:57:22 Author: heftig Revision: 358890 1.17.2+17+g52a7c79fd-1 Modified: cairo/trunk/PKGBUILD Deleted: cairo/trunk/0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch -+ 0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch | 32 -- PKGBUILD| 20 ++ 2 files changed, 9 insertions(+), 43 deletions(-) Deleted: 0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch === --- 0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch 2019-08-02 14:17:33 UTC (rev 358889) +++ 0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch 2019-08-02 14:57:22 UTC (rev 358890) @@ -1,32 +0,0 @@ -From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Mon, 19 Nov 2018 12:33:07 +0100 -Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in - cairo_ft_apply_variations - -Fixes a crash when using freetype >= 2.9 - -Signed-off-by: Laurent Carlier - src/cairo-ft-font.c | 4 - 1 file changed, 4 insertions(+) - -diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c -index 325dd61b4..981973f78 100644 a/src/cairo-ft-font.c -+++ b/src/cairo-ft-font.c -@@ -2393,7 +2393,11 @@ skip: - done: - free (coords); - free (current_coords); -+#if HAVE_FT_DONE_MM_VAR -+FT_Done_MM_Var (face->glyph->library, ft_mm_var); -+#else - free (ft_mm_var); -+#endif - } - } - --- -2.20.1 - Modified: PKGBUILD === --- PKGBUILD2019-08-02 14:17:33 UTC (rev 358889) +++ PKGBUILD2019-08-02 14:57:22 UTC (rev 358890) @@ -2,8 +2,8 @@ # Contributor: Brice Carpentier pkgname=cairo -pkgver=1.16.0 -pkgrel=2 +pkgver=1.17.2+17+g52a7c79fd +pkgrel=1 pkgdesc="2D graphics library with support for multiple output devices" url="https://cairographics.org/"; arch=(x86_64) @@ -11,11 +11,9 @@ depends=(libpng libxrender libxext fontconfig pixman glib2 lzo) makedepends=(librsvg gtk2 poppler-glib libspectre gtk-doc valgrind git) checkdepends=(ttf-dejavu gsfonts) -_commit=3ad43122b21a3299dd729dc8462d6b8f7f01142d # tags/1.16.0^0 -source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit"; -0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch) -sha1sums=('SKIP' - '9850a5b06e300055676ad1f5dfa90ecba0fe623c') +_commit=52a7c79fd4ff96bb5fac175f0199819b0f8c18fc # master +source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit";) +sha256sums=('SKIP') pkgver() { cd cairo @@ -25,13 +23,13 @@ prepare() { cd cairo - # CVE-2018-19876 - patch -Np1 -i ../0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch - # Update gtk-doc cp /usr/share/aclocal/gtk-doc.m4 build/aclocal.gtk-doc.m4 cp /usr/share/gtk-doc/data/gtk-doc.make build/Makefile.am.gtk-doc + # Fix typo + sed -i 's/have_png/use_png/g' configure.ac + NOCONFIGURE=1 ./autogen.sh } @@ -50,7 +48,7 @@ --enable-gtk-doc \ --enable-full-testing \ --enable-test-surfaces - sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + sed -i 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool make }
[arch-commits] Commit in cairo/trunk (2 files)
Date: Thursday, February 14, 2019 @ 08:55:33 Author: lcarlier Revision: 346259 upgpkg: cairo 1.16.0-2 fix CVE-2018-19876 Added: cairo/trunk/0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch Modified: cairo/trunk/PKGBUILD -+ 0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch | 32 ++ PKGBUILD| 11 ++- 2 files changed, 40 insertions(+), 3 deletions(-) Added: 0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch === --- 0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch (rev 0) +++ 0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch 2019-02-14 08:55:33 UTC (rev 346259) @@ -0,0 +1,32 @@ +From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001 +From: Carlos Garcia Campos +Date: Mon, 19 Nov 2018 12:33:07 +0100 +Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in + cairo_ft_apply_variations + +Fixes a crash when using freetype >= 2.9 + +Signed-off-by: Laurent Carlier +--- + src/cairo-ft-font.c | 4 + 1 file changed, 4 insertions(+) + +diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c +index 325dd61b4..981973f78 100644 +--- a/src/cairo-ft-font.c b/src/cairo-ft-font.c +@@ -2393,7 +2393,11 @@ skip: + done: + free (coords); + free (current_coords); ++#if HAVE_FT_DONE_MM_VAR ++FT_Done_MM_Var (face->glyph->library, ft_mm_var); ++#else + free (ft_mm_var); ++#endif + } + } + +-- +2.20.1 + Modified: PKGBUILD === --- PKGBUILD2019-02-14 08:55:17 UTC (rev 346258) +++ PKGBUILD2019-02-14 08:55:33 UTC (rev 346259) @@ -3,7 +3,7 @@ pkgname=cairo pkgver=1.16.0 -pkgrel=1 +pkgrel=2 pkgdesc="2D graphics library with support for multiple output devices" url="https://cairographics.org/"; arch=(x86_64) @@ -12,8 +12,10 @@ makedepends=(librsvg gtk2 poppler-glib libspectre gtk-doc valgrind git) checkdepends=(ttf-dejavu gsfonts) _commit=3ad43122b21a3299dd729dc8462d6b8f7f01142d # tags/1.16.0^0 -source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit";) -sha1sums=('SKIP') +source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit"; +0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch) +sha1sums=('SKIP' + '9850a5b06e300055676ad1f5dfa90ecba0fe623c') pkgver() { cd cairo @@ -23,6 +25,9 @@ prepare() { cd cairo + # CVE-2018-19876 + patch -Np1 -i ../0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch + # Update gtk-doc cp /usr/share/aclocal/gtk-doc.m4 build/aclocal.gtk-doc.m4 cp /usr/share/gtk-doc/data/gtk-doc.make build/Makefile.am.gtk-doc
[arch-commits] Commit in cairo/trunk (2 files)
Date: Thursday, January 31, 2013 @ 18:47:33 Author: andyrtr Revision: 176806 upgpkg: cairo 1.12.12-1 upstream update 1.12.12 Modified: cairo/trunk/PKGBUILD Deleted: cairo/trunk/xlib_Do_not_upload_the_whole_image_just_because_we_want_an_entire_row.patch -+ PKGBUILD| 11 - xlib_Do_not_upload_the_whole_image_just_because_we_want_an_entire_row.patch | 90 -- 2 files changed, 4 insertions(+), 97 deletions(-) Modified: PKGBUILD === --- PKGBUILD2013-01-31 17:39:46 UTC (rev 176805) +++ PKGBUILD2013-01-31 17:47:33 UTC (rev 176806) @@ -3,8 +3,8 @@ # Contributor: Brice Carpentier pkgname=cairo -pkgver=1.12.10 -pkgrel=3 +pkgver=1.12.12 +pkgrel=1 pkgdesc="Cairo vector graphics library" arch=(i686 x86_64) license=('LGPL' 'MPL') @@ -15,14 +15,11 @@ provides=('cairo-xcb') replaces=('cairo-xcb') options=('!libtool') -source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.xz - xlib_Do_not_upload_the_whole_image_just_because_we_want_an_entire_row.patch) -sha1sums=('be06d5aaa272bbbd08380f71ca710d5612881493' - '0631cc80b7512275d2be1d7d41497384013963ed') +source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.xz) +sha1sums=('8e597874da5b861287893d87dd4ab32471e99c82') build() { cd "$srcdir/$pkgname-$pkgver" - patch -Np1 -i ${srcdir}/xlib_Do_not_upload_the_whole_image_just_because_we_want_an_entire_row.patch ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ Deleted: xlib_Do_not_upload_the_whole_image_just_because_we_want_an_entire_row.patch === --- xlib_Do_not_upload_the_whole_image_just_because_we_want_an_entire_row.patch 2013-01-31 17:39:46 UTC (rev 176805) +++ xlib_Do_not_upload_the_whole_image_just_because_we_want_an_entire_row.patch 2013-01-31 17:47:33 UTC (rev 176806) @@ -1,90 +0,0 @@ -From fa4f48cccb6c7f4e1afb2ff4b98b906b7d8d4afc Mon Sep 17 00:00:00 2001 -From: Chris Wilson -Date: Wed, 23 Jan 2013 15:04:26 + -Subject: xlib: Do not upload the whole image just because we want an entire row - -Fixes regression exposed by - -commit a73e7ff0186176bc82cd3ae1432c054c1fd3aebd -Author: Chris Wilson -Date: Sun Jan 6 11:29:27 2013 + - -xlib: Simplify source creation by use of map-to-image - -but ultimately from - -commit 74941f822015cc50cd8477d0cf97f1a70dbff60b -Author: Chris Wilson -Date: Wed Jan 2 22:27:55 2013 + - -xlib: Use SHM transport for ordinary image uploads - -Reported-by: Gökçen Eraslan -Reported-by: Guillaume Ayoub -Reported-by: Emmanuel Benisty -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59635 -Signed-off-by: Chris Wilson -diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c -index 24290f7..ca55278 100644 a/src/cairo-xlib-source.c -+++ b/src/cairo-xlib-source.c -@@ -1035,7 +1035,13 @@ surface_source (cairo_xlib_surface_t *dst, - - status = _cairo_surface_unmap_image (&xsrc->base, image); - if (unlikely (status)) { -- cairo_surface_destroy (src); -+ cairo_surface_destroy (&xsrc->base); -+ return _cairo_surface_create_in_error (status); -+ } -+ -+ status = _cairo_xlib_surface_put_shm (xsrc); -+ if (unlikely (status)) { -+ cairo_surface_destroy (&xsrc->base); - return _cairo_surface_create_in_error (status); - } - } -diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c -index dbc677e..ee69b66 100644 a/src/cairo-xlib-surface.c -+++ b/src/cairo-xlib-surface.c -@@ -1139,26 +1139,24 @@ _cairo_xlib_surface_draw_image (cairo_xlib_surface_t *surface, - max_request_size = XMaxRequestSize (display->display); - if (max_request_size > 8192) - max_request_size = 8192; -- if (image->stride * image->height > max_request_size) { -+ if (width * height * 4 > max_request_size) { - shm_image = _cairo_xlib_surface_create_shm__image (surface, - image->pixman_format, -- image->width, -- image->height); -+ width, height); - if (shm_image && shm_image->status == CAIRO_STATUS_SUCCESS) { - cairo_image_surface_t *clone = (cairo_image_surface_t *) shm_image; -- if (clone->stride == image->stride) { -- memcpy (clone->data, image->data, clone->stride * clone->height); -- } else { -- pixman_image_composite32 (PIXMAN_OP_SRC, --
[arch-commits] Commit in cairo/trunk (2 files)
Date: Tuesday, October 2, 2012 @ 11:03:19 Author: foutrelis Revision: 167545 upgpkg: cairo 1.12.2-3 Fix FS#31509: libcairo.so segfault when printing certain PDF files Added: cairo/trunk/cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch Modified: cairo/trunk/PKGBUILD -+ PKGBUILD|8 ++- cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch | 37 ++ 2 files changed, 43 insertions(+), 2 deletions(-) Modified: PKGBUILD === --- PKGBUILD2012-10-02 13:24:36 UTC (rev 167544) +++ PKGBUILD2012-10-02 15:03:19 UTC (rev 167545) @@ -6,7 +6,7 @@ #_gitdate=20120426 #_gitver=957a9cc619965178a8927d114fe852034fc2385c pkgver=1.12.2 -pkgrel=2 +pkgrel=3 pkgdesc="Cairo vector graphics library" arch=(i686 x86_64) license=('LGPL' 'MPL') @@ -21,11 +21,13 @@ #$pkgname-$pkgver.tar.gz::http://cgit.freedesktop.org/cairo/snapshot/cairo-${_gitver}.tar.gz cairo-1.10.0-buggy_gradients.patch cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch +cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch #git_fixes.patch ) md5sums=('87649eb75789739d517c743e94879e51' '9b323790dab003e228c6955633cb888e' - '75ec73746cfaefcbed0e9b2a9f76bf00') + '75ec73746cfaefcbed0e9b2a9f76bf00' + '56f64466fd70ead732b00691464144f2') build() { cd "$srcdir/$pkgname-$pkgver" @@ -33,6 +35,8 @@ patch -Np1 -i ${srcdir}/cairo-1.10.0-buggy_gradients.patch # https://bugs.freedesktop.org/show_bug.cgi?id=50852 patch -Np1 -i ${srcdir}/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch + # https://bugs.freedesktop.org/show_bug.cgi?id=51443 + patch -Np1 -i ${srcdir}/cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch # status is 2012-04-26 last commit: image: Fix typo in _blit_spans() #patch -Np1 -i ${srcdir}/git_fixes.patch autoreconf -vfi Added: cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch === --- cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch (rev 0) +++ cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch 2012-10-02 15:03:19 UTC (rev 167545) @@ -0,0 +1,37 @@ +From 2f1d6b27e8b78c77346a5b603114b54400e57d83 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson +Date: Thu, 07 Jun 2012 09:48:52 + +Subject: cff-subsetting: Ignore charset for non cid fonts + +Fixes crash in https://bugzilla.gnome.org/show_bug.cgi?id=677422 +--- +diff --git a/src/cairo-cff-subset.c b/src/cairo-cff-subset.c +index db6fdf7..6f0cd66 100644 +--- a/src/cairo-cff-subset.c b/src/cairo-cff-subset.c +@@ -1178,14 +1178,16 @@ cairo_cff_font_read_top_dict (cairo_cff_font_t *font) + goto fail; + font->num_glyphs = _cairo_array_num_elements (&font->charstrings_index); + +-operand = cff_dict_get_operands (font->top_dict, CHARSET_OP, &size); +-if (font->is_cid && !operand) +- return CAIRO_INT_STATUS_UNSUPPORTED; ++if (font->is_cid) { ++ operand = cff_dict_get_operands (font->top_dict, CHARSET_OP, &size); ++ if (!operand) ++return CAIRO_INT_STATUS_UNSUPPORTED; + +-decode_integer (operand, &offset); +-font->charset = font->data + offset; +-if (font->charset >= font->data_end) +- return CAIRO_INT_STATUS_UNSUPPORTED; ++ decode_integer (operand, &offset); ++ font->charset = font->data + offset; ++ if (font->charset >= font->data_end) ++return CAIRO_INT_STATUS_UNSUPPORTED; ++} + + if (!font->is_opentype) + cairo_cff_font_read_font_metrics (font, font->top_dict); +-- +cgit v0.9.0.2-2-gbebe
[arch-commits] Commit in cairo/trunk (2 files)
Date: Friday, June 8, 2012 @ 13:28:17 Author: foutrelis Revision: 161276 upgpkg: cairo 1.12.2-2 Fix FS#29751: xfce4-panel segfault Added: cairo/trunk/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch Modified: cairo/trunk/PKGBUILD + PKGBUILD |8 cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch | 275 +++ 2 files changed, 281 insertions(+), 2 deletions(-) Modified: PKGBUILD === --- PKGBUILD2012-06-08 13:30:23 UTC (rev 161275) +++ PKGBUILD2012-06-08 17:28:17 UTC (rev 161276) @@ -6,7 +6,7 @@ #_gitdate=20120426 #_gitver=957a9cc619965178a8927d114fe852034fc2385c pkgver=1.12.2 -pkgrel=1 +pkgrel=2 pkgdesc="Cairo vector graphics library" arch=(i686 x86_64) license=('LGPL' 'MPL') @@ -20,15 +20,19 @@ source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.xz #$pkgname-$pkgver.tar.gz::http://cgit.freedesktop.org/cairo/snapshot/cairo-${_gitver}.tar.gz cairo-1.10.0-buggy_gradients.patch +cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch #git_fixes.patch ) md5sums=('87649eb75789739d517c743e94879e51' - '9b323790dab003e228c6955633cb888e') + '9b323790dab003e228c6955633cb888e' + '75ec73746cfaefcbed0e9b2a9f76bf00') build() { cd "$srcdir/$pkgname-$pkgver" #cd ${srcdir}/${pkgname}-${_gitver} patch -Np1 -i ${srcdir}/cairo-1.10.0-buggy_gradients.patch + # https://bugs.freedesktop.org/show_bug.cgi?id=50852 + patch -Np1 -i ${srcdir}/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch # status is 2012-04-26 last commit: image: Fix typo in _blit_spans() #patch -Np1 -i ${srcdir}/git_fixes.patch autoreconf -vfi Added: cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch === --- cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch (rev 0) +++ cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch 2012-06-08 17:28:17 UTC (rev 161276) @@ -0,0 +1,275 @@ +From f228769dfe5a8b5d73c49a41e95e31ed73a77fb3 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Fri, 08 Jun 2012 16:22:41 + +Subject: polygon-reduce: Reduce broken stopped-edge continuation + +This is hopefully a lesser used path and the attempted optimisation to +continue a stopped edge with a colinear stopped edge highly unlikely and +lost in the noise of the general inefficiency of the routine. As it was +broken, rather than attempt to rectify the "optimisation" remove it. + +Reported-by: Evangelos Foutras +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50852 +Signed-off-by: Chris Wilson +--- +diff --git a/src/cairo-polygon-reduce.c b/src/cairo-polygon-reduce.c +index 8758070..ea457fe 100644 +--- a/src/cairo-polygon-reduce.c b/src/cairo-polygon-reduce.c +@@ -42,6 +42,8 @@ + #include "cairo-freelist-private.h" + #include "cairo-combsort-inline.h" + ++#define DEBUG_POLYGON 0 ++ + typedef cairo_point_t cairo_bo_point32_t; + + typedef struct _cairo_bo_intersect_ordinate { +@@ -114,7 +116,6 @@ typedef struct _cairo_bo_event_queue { + + typedef struct _cairo_bo_sweep_line { + cairo_bo_edge_t *head; +-cairo_bo_edge_t *stopped; + int32_t current_y; + cairo_bo_edge_t *current_edge; + } cairo_bo_sweep_line_t; +@@ -476,8 +477,8 @@ edges_compare_x_for_y (const cairo_bo_edge_t *a, + static inline int + _line_equal (const cairo_line_t *a, const cairo_line_t *b) + { +-return a->p1.x == b->p1.x && a->p1.y == b->p1.y && +- a->p2.x == b->p2.x && a->p2.y == b->p2.y; ++return (a->p1.x == b->p1.x && a->p1.y == b->p1.y && ++ a->p2.x == b->p2.x && a->p2.y == b->p2.y); + } + + static int +@@ -1024,7 +1025,6 @@ static void + _cairo_bo_sweep_line_init (cairo_bo_sweep_line_t *sweep_line) + { + sweep_line->head = NULL; +-sweep_line->stopped = NULL; + sweep_line->current_y = INT32_MIN; + sweep_line->current_edge = NULL; + } +@@ -1139,6 +1139,8 @@ edges_colinear (const cairo_bo_edge_t *a, const cairo_bo_edge_t *b) + */ + if (a->edge.line.p1.y == b->edge.line.p1.y) { + return a->edge.line.p1.x == b->edge.line.p1.x; ++} else if (a->edge.line.p2.y == b->edge.line.p2.y) { ++ return a->edge.line.p2.x == b->edge.line.p2.x; + } else if (a->edge.line.p1.y < b->edge.line.p1.y) { + return edge_compare_for_y_against_x (b, +a->edge.line.p1.y, +@@ -1205,82 +1207,48 @@ _active_edges_to_polygon (cairo_bo_edge_t *left, + cairo_polygon_t *polygon) + { + cairo_bo_edge_t *right; ++unsigned int mask; + +-if (fill_rule == CAIRO_FILL_RULE_WINDING) { +- while (left != NULL) { +- int in_out = left->edge.dir; +- +- right = left->next; +-