texlive[42658] Build/source/libs/cairo: cairo 1.14.8

commits+kakuto at tug.org commits+kakuto at tug.org
Fri Dec 9 09:52:59 CET 2016


Revision: 42658
          http://tug.org/svn/texlive?view=revision&revision=42658
Author:   kakuto
Date:     2016-12-09 09:52:59 +0100 (Fri, 09 Dec 2016)
Log Message:
-----------
cairo 1.14.8

Modified Paths:
--------------
    trunk/Build/source/libs/cairo/ChangeLog
    trunk/Build/source/libs/cairo/README
    trunk/Build/source/libs/cairo/cairo-PATCHES/ChangeLog
    trunk/Build/source/libs/cairo/cairo-PATCHES/TL-Changes
    trunk/Build/source/libs/cairo/cairo-src/NEWS
    trunk/Build/source/libs/cairo/cairo-src/build/aclocal.float.m4
    trunk/Build/source/libs/cairo/cairo-src/cairo-version.h
    trunk/Build/source/libs/cairo/cairo-src/src/cairo-debug.c
    trunk/Build/source/libs/cairo/cairo-src/src/cairo-pattern.c
    trunk/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c
    trunk/Build/source/libs/cairo/cairo-src/src/cairo-surface-observer.c
    trunk/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c
    trunk/Build/source/libs/cairo/cairo-src/src/cairo-xcb-surface-render.c
    trunk/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface-shm.c
    trunk/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface.c
    trunk/Build/source/libs/cairo/configure
    trunk/Build/source/libs/cairo/version.ac

Modified: trunk/Build/source/libs/cairo/ChangeLog
===================================================================
--- trunk/Build/source/libs/cairo/ChangeLog	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/ChangeLog	2016-12-09 08:52:59 UTC (rev 42658)
@@ -1,3 +1,8 @@
+2016-12-09  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Import cairo-1.14.8.
+	* version.ac: Adapted.
+
 2016-02-15  Karl Berry  <karl at tug.org>
 
 	* cairo-PATCHES: rename from cairo-src-PATCHES.

Modified: trunk/Build/source/libs/cairo/README
===================================================================
--- trunk/Build/source/libs/cairo/README	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/README	2016-12-09 08:52:59 UTC (rev 42658)
@@ -1,4 +1,4 @@
-	Building cairo-1.14.6 as part of the TL tree
+	Building cairo-1.14.8 as part of the TL tree
 	============================================
 
 This directory libs/cairo/ uses a proxy Makefile.am to build the cairo
@@ -12,4 +12,4 @@
 
 2012-11-10	Taco Hoekwater <taco at metatex.org>
 2013-04-15	Peter Breitenlohner <peb at mppmu.mpg.de>
-2015-12-28	Akira Kakuto <kakuto at fuk.kindai.ac.jp>
+2016-12-09	Akira Kakuto <kakuto at fuk.kindai.ac.jp>

Modified: trunk/Build/source/libs/cairo/cairo-PATCHES/ChangeLog
===================================================================
--- trunk/Build/source/libs/cairo/cairo-PATCHES/ChangeLog	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-PATCHES/ChangeLog	2016-12-09 08:52:59 UTC (rev 42658)
@@ -1,3 +1,7 @@
+2016-12-09  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Import cairo-1.14.8.
+
 2015-12-28  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Import cairo-1.14.6.

Modified: trunk/Build/source/libs/cairo/cairo-PATCHES/TL-Changes
===================================================================
--- trunk/Build/source/libs/cairo/cairo-PATCHES/TL-Changes	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-PATCHES/TL-Changes	2016-12-09 08:52:59 UTC (rev 42658)
@@ -1,5 +1,5 @@
-Changes applied to the cairo-1.14.6/ tree as obtained from:
-	http://cairographics.org/releases/cairo-1.14.6.tar.xz
+Changes applied to the cairo-1.14.8/ tree as obtained from:
+	http://cairographics.org/releases/cairo-1.14.8.tar.xz
 
 Removed:
 	Makefile.in

Modified: trunk/Build/source/libs/cairo/cairo-src/NEWS
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/NEWS	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/NEWS	2016-12-09 08:52:59 UTC (rev 42658)
@@ -1,3 +1,46 @@
+Release 1.14.8    (2016-12-07  Bryce Harrington <bryce at osg.samsung.com>)
+========================================================================
+Bugfix release rolling up backported fixes for the past year.
+
+For a complete log of changes since 1.14.6, please see:
+
+    http://cairographics.org/releases/ChangeLog.cairo-1.14.8
+
+Features
+--------
+None
+
+API Changes
+-----------
+None
+
+Dependency Changes
+------------------
+None
+
+Performance Optimizations
+-------------------------
+None
+
+Bug Fixes
+---------
+* Fix "invalidfont" error on some printers when printing PDFs with
+  embedded fonts that have glyphs (such as spaces) with
+  num_contours == 0.  (Bug #79897)
+* Fix deadlock when destruction of a scaled font indirectly triggers
+  destruction of a second scaled font, causing the global cache to be
+  locked twice.  (Bug #93891)
+* Fix X errors reported to applications when shmdt() is called before
+  the Attach request is processed, due to missing xcb and xlib calls.
+* Fix random failure in record-paint-alpha-clip-mast test case, caused
+  by an incorrect assumption that a deferred clear can be skipped.
+  (Bug #84330)
+* Fix crash when dealing with an XShmGetImage() failure, caused by a
+  double free in _get_image_surface().  (Bug #91967)
+* Fix build issue when using non-GNU strings utility.  (Bug #88639)
+* Cleanup debugging text sent to stdout instead of log.  (Bug #95227)
+
+
 Release 1.14.6    (2015-12-09  Bryce Harrington <bryce at osg.samsung.com>)
 ========================================================================
 Simple bugfix release to fix one Windows issue.
@@ -4,7 +47,7 @@
 
 For a complete log of changes since 1.14.4, please see:
 
-    http://cairographics.org/releases/ChangeLog.1.14.6
+    http://cairographics.org/releases/ChangeLog.cairo-1.14.6
 
 Features
 --------

Modified: trunk/Build/source/libs/cairo/cairo-src/build/aclocal.float.m4
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/build/aclocal.float.m4	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/build/aclocal.float.m4	2016-12-09 08:52:59 UTC (rev 42658)
@@ -31,10 +31,10 @@
 
 ]])], [
 
-if strings - conftest$ac_exeext | grep noonsees >/dev/null ; then
+if strings -a conftest$ac_exeext | grep noonsees >/dev/null ; then
   ax_cv_c_float_words_bigendian=yes
 fi
-if strings - conftest$ac_exeext | grep seesnoon >/dev/null ; then
+if strings -a conftest$ac_exeext | grep seesnoon >/dev/null ; then
   if test "$ax_cv_c_float_words_bigendian" = unknown; then
     ax_cv_c_float_words_bigendian=no
   else

Modified: trunk/Build/source/libs/cairo/cairo-src/cairo-version.h
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/cairo-version.h	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/cairo-version.h	2016-12-09 08:52:59 UTC (rev 42658)
@@ -3,6 +3,6 @@
 
 #define CAIRO_VERSION_MAJOR 1
 #define CAIRO_VERSION_MINOR 14
-#define CAIRO_VERSION_MICRO 6
+#define CAIRO_VERSION_MICRO 8
 
 #endif

Modified: trunk/Build/source/libs/cairo/cairo-src/src/cairo-debug.c
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/src/cairo-debug.c	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/src/cairo-debug.c	2016-12-09 08:52:59 UTC (rev 42658)
@@ -262,7 +262,7 @@
 		 box.p1.x, box.p1.y, box.p2.x, box.p2.y);
     }
 
-    printf ("\n");
+    fprintf (stream, "\n");
 }
 
 void

Modified: trunk/Build/source/libs/cairo/cairo-src/src/cairo-pattern.c
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/src/cairo-pattern.c	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/src/cairo-pattern.c	2016-12-09 08:52:59 UTC (rev 42658)
@@ -4614,7 +4614,7 @@
 _cairo_debug_print_raster_source_pattern (FILE *file,
 					  const cairo_raster_source_pattern_t *raster)
 {
-    printf ("  content: %x, size %dx%d\n", raster->content, raster->extents.width, raster->extents.height);
+    fprintf (file, "  content: %x, size %dx%d\n", raster->content, raster->extents.width, raster->extents.height);
 }
 
 static void

Modified: trunk/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c	2016-12-09 08:52:59 UTC (rev 42658)
@@ -818,23 +818,35 @@
 void
 _cairo_scaled_font_reset_cache (cairo_scaled_font_t *scaled_font)
 {
+    cairo_scaled_glyph_page_t *page;
+
     CAIRO_MUTEX_LOCK (scaled_font->mutex);
     assert (! scaled_font->cache_frozen);
     assert (! scaled_font->global_cache_frozen);
     CAIRO_MUTEX_LOCK (_cairo_scaled_glyph_page_cache_mutex);
-    while (! cairo_list_is_empty (&scaled_font->glyph_pages)) {
-	cairo_scaled_glyph_page_t *page =
-	    cairo_list_first_entry (&scaled_font->glyph_pages,
-				    cairo_scaled_glyph_page_t,
-				    link);
 
+    cairo_list_foreach_entry (page,
+			      cairo_scaled_glyph_page_t,
+			      &scaled_font->glyph_pages,
+			      link) {
 	cairo_scaled_glyph_page_cache.size -= page->cache_entry.size;
 	_cairo_hash_table_remove (cairo_scaled_glyph_page_cache.hash_table,
 				  (cairo_hash_entry_t *) &page->cache_entry);
+    }
 
+    CAIRO_MUTEX_UNLOCK (_cairo_scaled_glyph_page_cache_mutex);
+
+    /* Destroy scaled_font's pages while holding its lock only, and not the
+     * global page cache lock. The destructor can cause us to recurse and
+     * end up back here for a different scaled_font. */
+
+    while (! cairo_list_is_empty (&scaled_font->glyph_pages)) {
+	page = cairo_list_first_entry (&scaled_font->glyph_pages,
+				       cairo_scaled_glyph_page_t,
+				       link);
 	_cairo_scaled_glyph_page_destroy (scaled_font, page);
     }
-    CAIRO_MUTEX_UNLOCK (_cairo_scaled_glyph_page_cache_mutex);
+
     CAIRO_MUTEX_UNLOCK (scaled_font->mutex);
 }
 

Modified: trunk/Build/source/libs/cairo/cairo-src/src/cairo-surface-observer.c
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/src/cairo-surface-observer.c	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/src/cairo-surface-observer.c	2016-12-09 08:52:59 UTC (rev 42658)
@@ -1218,8 +1218,6 @@
     cairo_surface_observer_t *surface = abstract_surface;
     cairo_status_t status;
 
-    printf ("mark-dirty (%d, %d) x (%d, %d)\n", x, y, width, height);
-
     status = CAIRO_STATUS_SUCCESS;
     if (surface->target->backend->mark_dirty_rectangle)
 	status = surface->target->backend->mark_dirty_rectangle (surface->target,

Modified: trunk/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c	2016-12-09 08:52:59 UTC (rev 42658)
@@ -653,16 +653,34 @@
 	if (unlikely (status))
 	    goto FAIL;
 
-        if (size != 0) {
-            status = font->backend->load_truetype_table (font->scaled_font_subset->scaled_font,
+	if (size > 1) {
+	    tt_glyph_data_t *glyph_data;
+	    int num_contours;
+
+	    status = font->backend->load_truetype_table (font->scaled_font_subset->scaled_font,
 							 TT_TAG_glyf, begin, buffer, &size);
 	    if (unlikely (status))
 		goto FAIL;
 
-            status = cairo_truetype_font_remap_composite_glyph (font, buffer, size);
-	    if (unlikely (status))
-		goto FAIL;
-        }
+	    glyph_data = (tt_glyph_data_t *) buffer;
+	    num_contours = (int16_t)be16_to_cpu (glyph_data->num_contours);
+	    if (num_contours < 0) {
+		status = cairo_truetype_font_remap_composite_glyph (font, buffer, size);
+		if (unlikely (status))
+		    goto FAIL;
+	    } else if (num_contours == 0) {
+		/* num_contours == 0 is undefined in the Opentype
+		 * spec. There are some embedded fonts that have a
+		 * space glyph with num_contours = 0 that fails on
+		 * some printers. The spec requires glyphs without
+		 * contours to have a 0 size glyph entry in the loca
+		 * table.
+		 *
+		 * If num_contours == 0, truncate the glyph to 0 size.
+		 */
+		_cairo_array_truncate (&font->output, _cairo_array_num_elements (&font->output) - size);
+	    }
+	}
     }
 
     status = cairo_truetype_font_align_output (font, &next);

Modified: trunk/Build/source/libs/cairo/cairo-src/src/cairo-xcb-surface-render.c
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/src/cairo-xcb-surface-render.c	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/src/cairo-xcb-surface-render.c	2016-12-09 08:52:59 UTC (rev 42658)
@@ -3399,8 +3399,6 @@
 	}
     }
 
-    dst->deferred_clear = FALSE; /* assert(trap extents == extents); */
-
     status = _composite_traps (&info,
 			       dst, CAIRO_OPERATOR_SOURCE, mask_pattern,
 			       dst_x, dst_y,

Modified: trunk/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface-shm.c
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface-shm.c	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface-shm.c	2016-12-09 08:52:59 UTC (rev 42658)
@@ -441,7 +441,7 @@
 
     ev.type = display->shm->event;
     ev.send_event = 1; /* XXX or lie? */
-    ev.serial = NextRequest (display->display);
+    ev.serial = XNextRequest (display->display);
     ev.drawable = display->shm->window;
     ev.major_code = display->shm->opcode;
     ev.minor_code = X_ShmPutImage;
@@ -599,7 +599,7 @@
 	goto cleanup;
     }
 
-    pool->attached = NextRequest (dpy);
+    pool->attached = XNextRequest (dpy);
     success = XShmAttach (dpy, &pool->shm);
 #if !IPC_RMID_DEFERRED_RELEASE
     XSync (dpy, FALSE);
@@ -1199,7 +1199,7 @@
     cairo_xlib_shm_surface_t *shm = (cairo_xlib_shm_surface_t *) _shm;
     cairo_xlib_display_t *display = (cairo_xlib_display_t *) _shm->device;
 
-    shm->active = NextRequest (display->display);
+    shm->active = XNextRequest (display->display);
 }
 
 void
@@ -1241,7 +1241,7 @@
     cairo_xlib_display_t *display = (cairo_xlib_display_t *) surface->device;
     cairo_xlib_shm_surface_t *shm = (cairo_xlib_shm_surface_t *) surface;
 
-    display->shm->last_event = shm->active = NextRequest (display->display);
+    display->shm->last_event = shm->active = XNextRequest (display->display);
     return &shm->info->pool->shm;
 }
 

Modified: trunk/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface.c
===================================================================
--- trunk/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface.c	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/cairo-src/src/cairo-xlib-surface.c	2016-12-09 08:52:59 UTC (rev 42658)
@@ -807,6 +807,7 @@
 	    }
 
 	    cairo_surface_destroy (&image->base);
+	    image = NULL;
 	}
     }
 
@@ -1011,7 +1012,8 @@
     cairo_device_release (&display->base);
 
     if (unlikely (status)) {
-	cairo_surface_destroy (&image->base);
+	if (image)
+	    cairo_surface_destroy (&image->base);
 	return _cairo_surface_create_in_error (status);
     }
 

Modified: trunk/Build/source/libs/cairo/configure
===================================================================
--- trunk/Build/source/libs/cairo/configure	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/configure	2016-12-09 08:52:59 UTC (rev 42658)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for cairo (TeX Live) 1.14.6.
+# Generated by GNU Autoconf 2.69 for cairo (TeX Live) 1.14.8.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='cairo (TeX Live)'
 PACKAGE_TARNAME='cairo--tex-live-'
-PACKAGE_VERSION='1.14.6'
-PACKAGE_STRING='cairo (TeX Live) 1.14.6'
+PACKAGE_VERSION='1.14.8'
+PACKAGE_STRING='cairo (TeX Live) 1.14.8'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1349,7 +1349,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures cairo (TeX Live) 1.14.6 to adapt to many kinds of systems.
+\`configure' configures cairo (TeX Live) 1.14.8 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1420,7 +1420,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of cairo (TeX Live) 1.14.6:";;
+     short | recursive ) echo "Configuration of cairo (TeX Live) 1.14.8:";;
    esac
   cat <<\_ACEOF
 
@@ -1523,7 +1523,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-cairo (TeX Live) configure 1.14.6
+cairo (TeX Live) configure 1.14.8
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2129,7 +2129,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by cairo (TeX Live) $as_me 1.14.6, which was
+It was created by cairo (TeX Live) $as_me 1.14.8, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4383,7 +4383,7 @@
 
 # Define the identity of the package.
  PACKAGE='cairo--tex-live-'
- VERSION='1.14.6'
+ VERSION='1.14.8'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -7273,7 +7273,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by cairo (TeX Live) $as_me 1.14.6, which was
+This file was extended by cairo (TeX Live) $as_me 1.14.8, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -7339,7 +7339,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-cairo (TeX Live) config.status 1.14.6
+cairo (TeX Live) config.status 1.14.8
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/libs/cairo/version.ac
===================================================================
--- trunk/Build/source/libs/cairo/version.ac	2016-12-09 07:19:10 UTC (rev 42657)
+++ trunk/Build/source/libs/cairo/version.ac	2016-12-09 08:52:59 UTC (rev 42658)
@@ -8,4 +8,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current cairo version
-m4_define([cairo_version], [1.14.6])
+m4_define([cairo_version], [1.14.8])



More information about the tex-live-commits mailing list