commit c31721ab27c65941dd9e0c29662d7ebb5caa2a01 Author: Bryce Harrington AuthorDate: Tue Jun 13 12:25:01 2017 -0700 Commit: Bryce Harrington CommitDate: Tue Jun 13 14:57:38 2017 -0700 1.15.6 release NEWS | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cairo-version.h | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) commit ce68336f7da58822a4c9c4cd49d5336d55bd36fd Author: Bryce Harrington AuthorDate: Tue Jun 13 14:53:55 2017 -0700 Commit: Bryce Harrington CommitDate: Tue Jun 13 14:57:38 2017 -0700 drm: Add/reorder headers as required by check-preprocessor-syntax.sh If cairo-drm-intel-brw-eu.h and/or cairo-drm-intel-brw-structs.h are intended to be private headers, then the change to include cairo.h can be dropped but the headers should be renamed *-private.h to conform with Cairo standards. I'm not certain why check-preprocessor-syntax.sh started flagging these issues, as it doesn't look like there's been changes to them recently. But the release scripts won't move forward without these being fixed. src/drm/cairo-drm-intel-brw-eu.h | 1 + src/drm/cairo-drm-intel-brw-structs.h | 1 + src/drm/cairo-drm-intel-ioctl-private.h | 4 ++-- src/drm/cairo-drm-radeon-surface.c | 8 ++++---- 4 files changed, 8 insertions(+), 6 deletions(-) commit f613e0717231bd028ffc9da79247eb8c23dc463d Author: Bryce Harrington AuthorDate: Mon Jun 12 16:54:23 2017 -0700 Commit: Bryce Harrington CommitDate: Mon Jun 12 18:55:35 2017 -0700 gl: Fix comment syntax Signed-off-by: Bryce Harrington src/cairo-gl-private.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bfc243ca52e85e909e200363a687611d256ccc66 Author: Uli Schlachter AuthorDate: Tue May 30 18:04:38 2017 +0200 Commit: Uli Schlachter CommitDate: Tue May 30 18:04:38 2017 +0200 xcb: Fix error reporting if fallback fails If we cannot let the X11 server do some operation (for example: the RENDER extension is not available), then we fall back to an image surface and do the operation locally instead. This fallback requires the current content of the surface to be downloaded from the X11 server. This fallback logic had an error. The fallback is implemented with _get_image() in the function _cairo_xcb_surface_fallback(). _get_image() is only called if we do not yet have a fallback available, so when we call _get_image we have surface->fallback == NULL. Then, if _get_image() fails, it returns a surface in an error state. Before this patch, the code would then just ignore this error surface and return &surface->fallback->base, a NULL pointer. This would then quickly cause a crash when e.g. the surface's ->status member is accessed. Fix this by returning the error surface instead as the fallback. The end result of this patch will be that the XCB surface that is currently drawn to ends up in an error state which is a lot better than a NULL pointer dereference and actually correct in this case. The error state is reached because the current drawing operation will fail and this error is reported up the call stack and eventually "taints" the surface. (However, the error code could be better: _get_image() too often fails with a generic CAIRO_STATUS_NO_MEMORY error, but that's left as future work) Signed-off-by: Uli Schlachter src/cairo-xcb-surface.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 0fd0fd0ae9ad8cfb177bb844091de98c0235917e Author: Adrian Johnson AuthorDate: Sun May 28 09:07:54 2017 +0930 Commit: Adrian Johnson CommitDate: Sun May 28 09:12:56 2017 +0930 subsetting: support variable fonts If the font is a non default variant, fallback to creating a font from the outlines. src/cairo-cff-subset.c | 13 +++++++-- src/cairo-ft-font.c | 67 ++++++++++++++++++++++++++++++++++++++++++-- src/cairo-truetype-subset.c | 13 +++++++-- src/cairo-type1-subset.c | 14 ++++++--- src/cairoint.h | 8 ++++-- src/win32/cairo-win32-font.c | 12 ++++---- 6 files changed, 107 insertions(+), 20 deletions(-) commit 9d44136ef8e2a1ad2c6631beb4bbdaeed7a2dad8 Author: Uli Schlachter AuthorDate: Sat May 13 09:37:34 2017 +0200 Commit: Uli Schlachter CommitDate: Sat May 13 09:37:34 2017 +0200 Revert "stroker: Check for scaling overflow in computing half line widths" This reverts commit 91b25005d62fe4ca178f45d349374e42c29a5e11 because it causes lots of new crashes due to assertion failures. src/cairo-fixed-private.h | 13 ------------- src/cairo-path-stroke-boxes.c | 25 +++++-------------------- src/cairo-path-stroke-polygon.c | 1 - src/cairo-path-stroke-traps.c | 1 - src/cairo-path-stroke.c | 1 - 5 files changed, 5 insertions(+), 36 deletions(-) commit 91b25005d62fe4ca178f45d349374e42c29a5e11 Author: Chris Wilson AuthorDate: Fri Mar 24 12:36:41 2017 +0000 Commit: Bryce Harrington CommitDate: Thu May 4 17:44:48 2017 -0700 stroker: Check for scaling overflow in computing half line widths Given a combination of a large scaling matrix and a large line, we can easily generate a half line width that is unrepresentable in our 24.8 fixed-point. This leads to spurious errors later, such as generating negative height boxes, and so asking pixman to fill to infinity. To avoid this, we can check for overflow in calculating the half line with, though we still lack adequate range checking on the final stroke path. References: https://bugs.webkit.org/show_bug.cgi?id=16793 Signed-off-by: Chris Wilson Cc: magomez@igalia.com Tested-by: Bryce Harrington Acked-by: Bryce Harrington src/cairo-fixed-private.h | 13 +++++++++++++ src/cairo-path-stroke-boxes.c | 25 ++++++++++++++++++++----- src/cairo-path-stroke-polygon.c | 1 + src/cairo-path-stroke-traps.c | 1 + src/cairo-path-stroke.c | 1 + 5 files changed, 36 insertions(+), 5 deletions(-) commit a3cc46d2ccba44a538d05f0c5870b1a82f046350 Author: Andrea Canciani AuthorDate: Sun Mar 19 21:48:11 2017 +0100 Commit: Andrea Canciani CommitDate: Tue Apr 25 18:06:14 2017 +0200 quartz-font: Fix text-glyph-range The index 0 is a legitimate index used for character codes that do not correspond to any glyph in the font. Instead, the API reserves 0xFFFF (kCGFontIndexInvalid) as the invalid index and defines 0xFFFE (kCGFontIndexMax = kCGGlyphMax) as the maximum legal index. Fixes text-glyph-range. src/cairo-quartz-font.c | 16 ++++++++-------- test/reference/text-glyph-range.quartz.ref.png | Bin 0 -> 2328 bytes test/reference/text-glyph-range.quartz.xfail.png | Bin 2051 -> 0 bytes 3 files changed, 8 insertions(+), 8 deletions(-) commit fcb0a8ef36c9a84f586d38bd409d6a0e881890a7 Author: Andrea Canciani AuthorDate: Sat Mar 18 10:20:07 2017 +0100 Commit: Andrea Canciani CommitDate: Tue Apr 25 18:06:14 2017 +0200 quartz-font: Correct handling of SMP Unicode characters Truncating the UCS4 representation to 16 bits only works for the Basic Multilingual Plane, the other characters must be translated to a surrogate pair. Fixes smp-glyph. Reported-by: Clerk Ma src/cairo-quartz-font.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 5584bf755c98703653eef06670abaeb4873f9ee5 Author: Andrea Canciani AuthorDate: Sat Mar 18 08:55:11 2017 +0100 Commit: Andrea Canciani CommitDate: Tue Apr 25 18:05:40 2017 +0200 unicode: Extract the UCS4 to UTF-16 conversion to a separate function Reuse the function for the UTF-8 to UTF-16 conversion, but also make it available for internal use by cairo. src/cairo-unicode.c | 39 +++++++++++++++++++++++++++++++++------ src/cairoint.h | 4 ++++ 2 files changed, 37 insertions(+), 6 deletions(-) commit cb9f6273780bb2ffc710d2efdd4224d9096972cb Author: Andrea Canciani AuthorDate: Sun Mar 19 10:37:36 2017 +0100 Commit: Andrea Canciani CommitDate: Tue Apr 25 18:05:40 2017 +0200 test: Add a test for characters in the SMP Unicode characters in the Supplementary Multilingual Plane are encoded as surrogate pairs in UTF-16. This test tries to verify that backends do not perform UCS4 to UTF-16 conversion by truncation. test/Makefile.sources | 1 + test/reference/smp-glyph.ref.png | Bin 0 -> 301 bytes test/reference/smp-glyph.script.ref.png | Bin 0 -> 302 bytes test/smp-glyph.c | 56 ++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+) commit 8455d88b1276c25cbca0b7218171d8825efad4dc Author: Enrico Weigelt, metux IT consult AuthorDate: Mon Apr 17 18:57:11 2017 +0200 Commit: Bryce Harrington CommitDate: Mon Apr 24 18:35:44 2017 -0700 drm: fixed calls to _cairo_surface_init() This function now expects an additional parameter is_vector. Signed-off-by: Enrico Weigelt, metux IT consult src/drm/cairo-drm-intel-surface.c | 4 +++- src/drm/cairo-drm-radeon-surface.c | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) commit f7e686c92a428d5293b73c325bac1b043d0f86d8 Author: Enrico Weigelt, metux IT consult AuthorDate: Mon Apr 17 18:56:45 2017 +0200 Commit: Bryce Harrington CommitDate: Mon Apr 24 15:54:02 2017 -0700 drm: use typedefs and defines from drm headers instead of redundant own definitions These typedefs and defines are part of the libdrm API and therefore should be taken from there, instead of own redundant declarations. Signed-off-by: Enrico Weigelt, metux IT consult src/Makefile.sources | 1 - src/drm/cairo-drm-bo.c | 33 +-- src/drm/cairo-drm-i915-surface.c | 1 - src/drm/cairo-drm-i965-surface.c | 1 - src/drm/cairo-drm-intel-ioctl-private.h | 403 +------------------------------- src/drm/cairo-drm-intel.c | 4 +- src/drm/cairo-drm-ioctl-private.h | 12 - src/drm/cairo-drm-radeon-private.h | 4 - src/drm/cairo-drm-radeon-surface.c | 4 + src/drm/cairo-drm-radeon.c | 123 +--------- 10 files changed, 11 insertions(+), 575 deletions(-) commit 72c600afbfbbbafdc894a85c8086e18b93391c1d Author: Enrico Weigelt, metux IT consult AuthorDate: Mon Apr 17 18:56:43 2017 +0200 Commit: Bryce Harrington CommitDate: Mon Apr 24 15:42:35 2017 -0700 drm: dropped obsolete/unused intel_bo_get_image() [Call to this was dropped in bd672d08 in favor of intel_bo_map()]] Signed-off-by: Enrico Weigelt, metux IT consult Reviewed-by: Bryce Harrington src/drm/cairo-drm-intel-private.h | 5 ----- src/drm/cairo-drm-intel.c | 44 --------------------------------------- 2 files changed, 49 deletions(-) commit 182104defedd18c377a8d3d27ef9278e490f3cce Author: Enrico Weigelt, metux IT consult AuthorDate: Mon Apr 17 18:56:40 2017 +0200 Commit: Bryce Harrington CommitDate: Mon Apr 24 10:18:08 2017 -0700 drm: fixed missing includes Signed-off-by: Enrico Weigelt, metux IT consult Reviewed-by: Bryce Harrington src/drm/cairo-drm-i915-glyphs.c | 1 + src/drm/cairo-drm-i915-shader.c | 1 + src/drm/cairo-drm-i915-surface.c | 1 + src/drm/cairo-drm-intel-private.h | 1 + src/drm/cairo-drm-intel-surface.c | 1 + src/drm/cairo-drm-intel.c | 2 ++ src/drm/cairo-drm-radeon-surface.c | 1 + src/drm/cairo-drm-radeon.c | 1 + 8 files changed, 9 insertions(+) commit cffa452f44eadebef8553502e3d6cc49829d38ce Author: Debarshi Ray AuthorDate: Thu Dec 15 12:50:13 2016 +0100 Commit: Bryce Harrington CommitDate: Wed Mar 15 20:26:22 2017 -0700 doc: Clarify when the device scale is inherited and when it isn't In short, cairo_surface_create_similar inherits it, while cairo_surface_create_similar_image doesn't. It wasn't obvious without reading the code or explicitly checking the device scale of the new surface. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=99094 Reviewed-by: Bryce Harrington src/cairo-surface.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 1192f97388ba428a623670107a96fc13cbf97ee9 Author: Debarshi Ray AuthorDate: Thu Dec 15 12:41:39 2016 +0100 Commit: Bryce Harrington CommitDate: Wed Mar 15 20:26:18 2017 -0700 doc: Fix the units used by cairo_surface_create_similar_image Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=99094 Reviewed-by: Bryce Harrington src/cairo-surface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 10e4103a508f81a3e47938e97c0b84f1ba41071c Author: Uli Schlachter AuthorDate: Tue Mar 7 10:05:43 2017 +0100 Commit: Uli Schlachter CommitDate: Tue Mar 7 13:40:21 2017 +0100 xlib: Call XSync() before ignoring errors The code here wants to ignore errors for a specific request. To do so, it sets a no-op error handler. However, it could happen that some previous request caused an error and this error will also be ignored by the no-op error handler. To avoid this, call XSync() before setting the error handler. This makes sure that all pending errors are handled. Signed-off-by: Uli Schlachter Reviewed-by: Chris Wilson src/cairo-xlib-surface.c | 2 ++ 1 file changed, 2 insertions(+) commit f02ee3d3cf4168b5468b6548fe8823e803650f53 Author: Uli Schlachter AuthorDate: Tue Mar 7 09:57:55 2017 +0100 Commit: Uli Schlachter CommitDate: Tue Mar 7 09:57:55 2017 +0100 xlib: Remove unused variable This constant seems to be unused since commit af9fbd176b145f042408ef from 2011. Signed-off-by: Uli Schlachter src/cairo-xlib-surface.c | 6 ------ 1 file changed, 6 deletions(-) commit 1a307123af14cfa50a0c35819cfaee79f0ade1ba Author: Adrian Johnson AuthorDate: Thu Mar 2 19:14:04 2017 +1030 Commit: Adrian Johnson CommitDate: Thu Mar 2 19:14:04 2017 +1030 pdf-operators: fix bug in line wrapping patch by jmmorlan@sonic.net https://bugs.freedesktop.org/show_bug.cgi?id=100029 src/cairo-pdf-operators.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5854dd9df40a68efb0cb1b2bb7f94e3f05cbdf45 Author: Adrian Johnson AuthorDate: Thu Feb 2 06:47:11 2017 +1030 Commit: Adrian Johnson CommitDate: Thu Feb 2 06:47:11 2017 +1030 pdf: don't return uninitialized status https://bugs.freedesktop.org/show_bug.cgi?id=99630 src/cairo-pdf-interchange.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5a8a9c97ed268004cbac510d39739ff56c0fb43c Author: Andrea Canciani AuthorDate: Wed Jan 18 13:08:11 2017 +0100 Commit: Andrea Canciani CommitDate: Wed Jan 18 15:06:33 2017 +0100 quartz: Restore 10.4-specific font code The code for extracting font glyphs was replaced in 70cc8f250b5669e757b4f044571ba0f71e3dea9e with an implementation based on CoreText, which is not available on MacOSX 10.4. This commit restores automatic detection of which API should be used by means of dynamic linking. README | 2 +- src/cairo-quartz-font.c | 26 ++++++++++++++++++++++---- src/cairo-quartz-private.h | 12 ++++++++---- 3 files changed, 31 insertions(+), 9 deletions(-) commit dd4706d0a9d123d3aa4284ac9ab35fbe165278b2 Author: Kouhei Sutou AuthorDate: Wed Jan 4 23:38:17 2017 +0900 Commit: Adrian Johnson CommitDate: Thu Jan 5 08:33:07 2017 +1030 pdf: Fix wrong cairo_pdf_outline_flags_t item prefix src/cairo-pdf-interchange.c | 6 +++--- src/cairo-pdf.h | 12 ++++++------ test/pdf-tagged-text.c | 7 ++++--- 3 files changed, 13 insertions(+), 12 deletions(-) commit c7e87cd9df401f2c5a62534697d12a4e0afda2ce Author: Kouhei Sutou AuthorDate: Wed Jan 4 23:32:59 2017 +0900 Commit: Adrian Johnson CommitDate: Thu Jan 5 08:30:52 2017 +1030 pdf: Remove duplicated item src/cairo-pdf.h | 1 - 1 file changed, 1 deletion(-) commit 55e0b214ea13136acf4e234e620f637ee59e0924 Author: Bryce Harrington AuthorDate: Tue Dec 20 11:42:57 2016 -0800 Commit: Bryce Harrington CommitDate: Tue Dec 20 11:42:57 2016 -0800 RELEASING: Fix tabbing RELEASING | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 3c5868a90ddf4a3a65bfe059bb7b4907b73e58c2 Author: Bryce Harrington AuthorDate: Fri Dec 9 15:41:08 2016 -0800 Commit: Bryce Harrington CommitDate: Fri Dec 9 15:41:08 2016 -0800 Bump version for new development tree, 1.15.5 cairo-version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)