# Generated by configure. Do not edit. commit b43e7c6f3cf7855e16170a06d3a9c7234c60ca94 Author: Emmanuele Bassi Date: Fri Mar 18 18:12:43 2022 +0000 Release Cairo 1.17.6 (snapshot) NEWS | 40 ++++++++++++++++++++++++++++++++++++++++ src/cairo-version.h | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) commit 8344dc1136dbf018d1237ba60420e3ea18909c75 Author: Emmanuele Bassi Date: Fri Mar 18 18:38:41 2022 +0000 build: Avoid SSHing into a host during release checks We really don't need to have SSH access if we're just checking for the integrity of the next release. We can simply check if a specially crafted file linking to the latest release is present. build/Makefile.am.releasing | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1e5a98b9cb42628ba964686fa1f24b85000a9936 Merge: ec5460336 9bb203636 Author: Adrian Johnson Date: Sat Mar 12 01:24:14 2022 +0000 Merge branch 'malloc-hook2' into 'master' Fix warning in malloc-stats.c See merge request cairo/cairo!297 commit ec54603366a39a5ad12c489aaf0bbb85859fa7a9 Merge: 777d35fa8 82119ec2f Author: Adrian Johnson Date: Wed Mar 9 09:36:35 2022 +0000 Merge branch 'issue-263-2' into 'master' Fix font count in Inkscape's win32 pdf export See merge request cairo/cairo!296 commit 9bb2036369eb83887eb1780522ea2b4481073a78 Author: Adrian Johnson Date: Wed Mar 9 19:43:10 2022 +1030 Fix warning ../util/malloc-stats.c:295:1: warning: no previous declaration for ‘malloc_stats’ [-Wmissing-declarations] util/malloc-stats.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82119ec2f38fc92ba711454d87558092f0ef4b32 Author: Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> Date: Wed Mar 9 12:43:42 2022 +1100 Fix font count in Inkscape's win32 pdf export Fix win32 hash comparison, where unsigned long is shorter than uintptr_t. Follow-up to 9fbf42754899898934bc8bf4f8eeacba37656fdc. src/cairo-hash.c | 2 +- src/cairo-types-private.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 777d35fa879396c055f4fd741695bc56a1a1576c Merge: 1c0a9aac0 d2f1827cd Author: Adrian Johnson Date: Tue Mar 8 21:22:25 2022 +0000 Merge branch 'malloc-hook' into 'master' Replace deprecated malloc_hook See merge request cairo/cairo!295 commit d2f1827cdebe2eee6595cf6aeef0ff005ec636d3 Author: Adrian Johnson Date: Tue Mar 8 21:17:18 2022 +1030 Replace deprecated malloc_hook util/README | 2 +- util/malloc-stats.c | 92 ++++++++++++++++++++--------------------------------- util/meson.build | 4 +-- 3 files changed, 38 insertions(+), 60 deletions(-) commit 1c0a9aac01435e75be6c30a833e8008654cd5f25 Merge: 135327c11 989d368dc Author: Adrian Johnson Date: Mon Mar 7 07:40:19 2022 +0000 Merge branch 'dwrite-docs' into 'master' DWrite font docs See merge request cairo/cairo!294 commit 989d368dc5a4de8b4c205a715bc09c04ca33ac81 Author: Adrian Johnson Date: Sat Mar 5 16:31:50 2022 +1030 DWrite font docs doc/public/cairo-docs.xml | 1 + doc/public/cairo-sections.txt | 6 ++ src/cairo-win32.h | 1 + src/meson.build | 1 + src/win32/cairo-dwrite-font-public.c | 118 +++++++++++++++++++++++++++++++++++ src/win32/cairo-dwrite-font.cpp | 3 +- src/win32/cairo-win32-font.c | 6 +- src/win32/cairo-win32-private.h | 3 + util/cairo-trace/trace.c | 1 + 9 files changed, 137 insertions(+), 3 deletions(-) commit 135327c112fafa6300c140f46c7ce1a346e49515 Merge: 1fee5ac98 fa3a1bca7 Author: Adrian Johnson Date: Sat Mar 5 03:54:58 2022 +0000 Merge branch 'win32-color-fonts' into 'master' Windows color fonts See merge request cairo/cairo!244 commit 1fee5ac98590c9121890e44960a65928293ecaaf Merge: 1195977d1 baf8a8cfc Author: Uli Schlachter Date: Tue Mar 1 11:03:30 2022 +0000 Merge branch 'cairo542' into 'master' Re-enable windows backends in autotool Closes #542 See merge request cairo/cairo!291 commit baf8a8cfc71fed0aff4607b6c7d9da1195f05ecc Author: Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> Date: Tue Mar 1 20:54:16 2022 +1100 Re-enable windows backends in autotool AC_LANG_SOURCE only takes one argument, ignored the others. Closes #542 build/configure.ac.system | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1195977d16b81b71cfe15b6765396e31a8f4a829 Merge: 1a799577b 3eef8ea90 Author: Emmanuele Bassi Date: Sun Feb 27 19:12:07 2022 +0000 Merge branch 'remove-unused-sym' into 'master' build: Remove unused DirectFB bits on Windows See merge request cairo/cairo!288 commit fa3a1bca7d4cf04bf5002a3e0e886dffe29ccfab Author: Adrian Johnson Date: Sun Feb 27 20:40:52 2022 +1030 Remove the extra API from the mozilla DWrite src/cairo-win32.h | 21 ---------------- src/win32/cairo-win32-private.h | 3 +++ src/win32/cairo-win32-surface.c | 54 ----------------------------------------- 3 files changed, 3 insertions(+), 75 deletions(-) commit 5635c75a2c99a901fa1410d4a297c1a1c913c0ee Author: Adrian Johnson Date: Sat Aug 14 15:38:14 2021 +0930 dwrite: add color font support meson.build | 22 +- src/cairo-device.c | 1 + src/cairo-error-private.h | 1 + src/cairo-misc.c | 2 + src/cairo-region.c | 1 + src/cairo-spans.c | 2 + src/cairo-surface.c | 1 + src/cairo.c | 4 +- src/cairo.h | 2 + src/win32/cairo-dwrite-font.cpp | 412 +++++++++++++++++++++++++++++++++---- src/win32/cairo-dwrite-private.hpp | 40 +++- src/win32/d2d1-extra.h | 111 ++++++++++ src/win32/dw-extra.h | 78 +++++++ 13 files changed, 629 insertions(+), 48 deletions(-) commit fdf2a9b4c0b610ef5dc328c7a095ff8e6e263f05 Author: Adrian Johnson Date: Wed Aug 11 18:49:44 2021 +0930 dwrite_font param is not used src/cairo-win32.h | 2 +- src/win32/cairo-dwrite-font.cpp | 6 +----- src/win32/cairo-dwrite-private.hpp | 1 - 3 files changed, 2 insertions(+), 7 deletions(-) commit 7e644409eab3a495970c6d8dafdab33610e86f87 Author: Adrian Johnson Date: Wed Aug 11 07:19:54 2021 +0930 Fix dwrite toy fonts src/cairoint.h | 14 +++++++++++++- src/win32/cairo-dwrite-font.cpp | 21 ++++++++++++--------- 2 files changed, 25 insertions(+), 10 deletions(-) commit fa76ebec03ebf3252b18e0bb319ca42e00503083 Author: Adrian Johnson Date: Wed Aug 11 06:35:49 2021 +0930 Fix some warnings and use _cairo_malloc where applicable src/win32/cairo-dwrite-font.cpp | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) commit 28ce8463af9936982a5dd23ea0c7e6bfe9df2df2 Author: Adrian Johnson Date: Sun Aug 8 12:09:23 2021 +0930 Fix check doc errors src/cairo-win32.h | 8 ++++---- src/win32/cairo-dwrite-font.cpp | 15 ++++++++------- src/win32/cairo-dwrite-private.hpp | 4 ++-- src/win32/cairo-win32-private.h | 2 +- src/win32/cairo-win32-refptr.hpp | 4 ++-- 5 files changed, 17 insertions(+), 16 deletions(-) commit ed36d85bf6b2723631de4366dbdfbd05f84bd8c8 Author: Adrian Johnson Date: Sun Aug 8 11:19:28 2021 +0930 Fix msvc c++ compile error src/cairo-atomic-private.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 90ca6354722879ab6af980aeb3aed2bab0b2a7af Author: Adrian Johnson Date: Sun Aug 8 10:44:19 2021 +0930 Import win32 dwrite font backend from https://hg.mozilla.org/mozilla-central/file/7338d7d940913147f8a1b1e8bd2b25ab255f4373/gfx/cairo/cairo/src and add to the meson build. I've omitted the cairo_surface_set_subpixel_antialiasing() API and its use in quartz and dwrite. Not sure if that is needed. It compiles. Not tested. meson.build | 18 +- src/cairo-win32.h | 31 + src/cairo.h | 4 +- src/meson.build | 3 + src/win32/cairo-dwrite-font.cpp | 1426 ++++++++++++++++++++++++++++++ src/win32/cairo-dwrite-private.hpp | 229 +++++ src/win32/cairo-win32-display-surface.c | 2 +- src/win32/cairo-win32-font.c | 6 +- src/win32/cairo-win32-printing-surface.c | 37 +- src/win32/cairo-win32-private.h | 27 + src/win32/cairo-win32-refptr.hpp | 178 ++++ src/win32/cairo-win32-surface.c | 67 +- 12 files changed, 2020 insertions(+), 8 deletions(-) commit 1a799577b2c7bcd3757211adcc4e46abb3bdfc97 Merge: b0b294b82 895b249b0 Author: Adrian Johnson Date: Sun Feb 27 03:51:50 2022 +0000 Merge branch 'issue-526' into 'master' pdf: ensure urls and filename strings are correctly encoded Closes #526 See merge request cairo/cairo!266 commit 3eef8ea9079c541593a372dd4b37c73b6413f14b Author: Emmanuele Bassi Date: Sat Feb 26 17:17:18 2022 +0000 build: Remove unused DirectFB bits on Windows The DirectFB surface removal commit did not remove all the build bits. build/Makefile.win32.features | 1 - build/Makefile.win32.features-h | 3 --- 2 files changed, 4 deletions(-) commit b0b294b827cf8d40e752231124b4a3bd0fda83df Merge: 1781e59c5 5e1dd8479 Author: Uli Schlachter Date: Sat Feb 26 10:11:56 2022 +0000 Merge branch 'chrstphrchvz-master-patch-12648' into 'master' quartz: Fix spelling in comment See merge request cairo/cairo!286 commit 5e1dd84796b0aed7db44265b8c6db8cc866cec96 Author: Christopher Chavez Date: Sat Feb 26 09:17:28 2022 +0000 quartz: Fix spelling in comment src/cairo-quartz-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1781e59c570f6eb85456e5ee9119dbce017f1a79 Merge: ebba42b19 9cfa51046 Author: Uli Schlachter Date: Fri Feb 25 15:44:51 2022 +0000 Merge branch 'drop-backends' into 'master' Remove old backends See merge request cairo/cairo!285 commit ebba42b19161961b524154a2037aa848405b0db3 Merge: 4fc72919e 2e0075e26 Author: Uli Schlachter Date: Fri Feb 25 15:30:40 2022 +0000 Merge branch 'quartz-snapshot' into 'master' quartz: Improve use of images for better performance. See merge request cairo/cairo!282 commit 9cfa5104648bb6ebaa264a2b427a8a991faee570 Author: Emmanuele Bassi Date: Fri Feb 25 12:54:11 2022 +0000 ci: Make Windows jobs manual The CI runners for Windows are currently timing out on the fd.o infrastructure. The issue is being worked on, but we should avoid blocking our entire CI pipeline until it's fixed, as it sounds it is going to take a while. .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) commit 9b9028c160a404771fe0caeecda8f4248997a808 Author: Emmanuele Bassi Date: Sun Apr 18 00:02:45 2021 +0100 Drop cairo-vg surface OpenVG is a failed experiment from 10 years ago, and nobody has been using the cairo-vg surface in pretty much the same amount of time. boilerplate/Makefile.sources | 1 - boilerplate/Makefile.win32.features | 10 - boilerplate/cairo-boilerplate-vg.c | 364 ------- boilerplate/meson.build | 1 - build/Makefile.win32.features | 1 - build/Makefile.win32.features-h | 3 - build/configure.ac.features | 1 - configure.ac | 11 - meson.build | 17 - meson_options.txt | 1 - src/Makefile.sources | 3 - src/Makefile.win32.features | 14 - src/cairo-vg-surface.c | 1854 ----------------------------------- src/cairo-vg.h | 103 -- util/cairo-trace/trace.c | 79 -- 15 files changed, 2463 deletions(-) commit fc3437128d7b45ba34007abbbeea2a81b1b126fb Author: Emmanuele Bassi Date: Sat Apr 17 23:59:28 2021 +0100 Remove cairo-directfb Nobody cares about DirectFB any more, not even the people that registered and maintained the DirectFB domain. README | 2 +- boilerplate/Makefile.sources | 1 - boilerplate/Makefile.win32.features | 10 - boilerplate/cairo-boilerplate-directfb.c | 235 ------------- boilerplate/meson.build | 1 - build/configure.ac.features | 1 - configure.ac | 8 - meson.build | 14 - meson_options.txt | 1 - src/Makefile.sources | 3 - src/Makefile.win32.features | 14 - src/cairo-directfb-surface.c | 545 ------------------------------- src/cairo-directfb.h | 67 ---- src/meson.build | 7 - 14 files changed, 1 insertion(+), 908 deletions(-) commit 803afe6edda17b97e3d12a20585e565a2d2a79a2 Author: Emmanuele Bassi Date: Sat Apr 17 23:56:50 2021 +0100 tanis: Remove cairo-cogl Cogl's upstream is unmaintained, and has been for the past 6 years. .gitlab-ci.yml | 1 - boilerplate/Makefile.sources | 1 - boilerplate/Makefile.win32.features | 10 - boilerplate/cairo-boilerplate-cogl.c | 217 -- boilerplate/meson.build | 1 - build/Makefile.win32.features | 1 - build/Makefile.win32.features-h | 3 - build/configure.ac.features | 1 - configure.ac | 6 - meson.build | 16 - meson_options.txt | 1 - src/Makefile.sources | 6 - src/Makefile.win32.features | 14 - src/cairo-cogl-gradient-private.h | 90 - src/cairo-cogl-gradient.c | 678 ------ src/cairo-cogl-private.h | 164 -- src/cairo-cogl-surface.c | 4106 ---------------------------------- src/cairo-cogl.h | 86 - src/cairoint.h | 5 - src/meson.build | 5 - 20 files changed, 5412 deletions(-) commit 1409079eefc04dcb0cab49e02f3cf3cf5e622974 Author: Emmanuele Bassi Date: Sat Apr 17 23:53:52 2021 +0100 Remove cairo-drm The DRM backend has always been a science experiment, but now it hasn't been built in more than 10 years, and it's completely broken. .gitlab-ci.yml | 1 - boilerplate/Makefile.sources | 1 - boilerplate/Makefile.win32.features | 20 - boilerplate/cairo-boilerplate-drm.c | 112 -- boilerplate/meson.build | 1 - build/Makefile.win32.features | 2 - build/Makefile.win32.features-h | 6 - build/configure.ac.features | 1 - configure.ac | 26 - doc/public/Makefile.am | 1 - doc/public/meson.build | 1 - meson.build | 20 - meson_options.txt | 1 - src/Makefile.sources | 32 - src/Makefile.win32.features | 28 - src/cairo-debug.c | 4 - src/cairo-drm.h | 120 -- src/cairo-mutex-list-private.h | 3 - src/cairoint.h | 7 - src/check-headers.sh | 2 +- src/drm/cairo-drm-bo.c | 99 - src/drm/cairo-drm-gallium-surface.c | 826 -------- src/drm/cairo-drm-i915-glyphs.c | 566 ------ src/drm/cairo-drm-i915-private.h | 1270 ------------- src/drm/cairo-drm-i915-shader.c | 2859 ---------------------------- src/drm/cairo-drm-i915-spans.c | 799 -------- src/drm/cairo-drm-i915-surface.c | 2942 ----------------------------- src/drm/cairo-drm-i965-glyphs.c | 506 ----- src/drm/cairo-drm-i965-private.h | 737 -------- src/drm/cairo-drm-i965-shader.c | 2825 --------------------------- src/drm/cairo-drm-i965-spans.c | 407 ---- src/drm/cairo-drm-i965-surface.c | 1926 ------------------- src/drm/cairo-drm-intel-brw-defines.h | 824 -------- src/drm/cairo-drm-intel-brw-eu-emit.c | 1089 ----------- src/drm/cairo-drm-intel-brw-eu-util.c | 121 -- src/drm/cairo-drm-intel-brw-eu.c | 250 --- src/drm/cairo-drm-intel-brw-eu.h | 1044 ---------- src/drm/cairo-drm-intel-brw-structs.h | 1329 ------------- src/drm/cairo-drm-intel-command-private.h | 909 --------- src/drm/cairo-drm-intel-debug.c | 1209 ------------ src/drm/cairo-drm-intel-ioctl-private.h | 45 - src/drm/cairo-drm-intel-private.h | 515 ----- src/drm/cairo-drm-intel-surface.c | 454 ----- src/drm/cairo-drm-intel.c | 1348 ------------- src/drm/cairo-drm-private.h | 238 --- src/drm/cairo-drm-radeon-private.h | 103 - src/drm/cairo-drm-radeon-surface.c | 454 ----- src/drm/cairo-drm-radeon.c | 331 ---- src/drm/cairo-drm-surface.c | 369 ---- src/drm/cairo-drm.c | 390 ---- src/meson.build | 22 - 51 files changed, 1 insertion(+), 27194 deletions(-) commit 64db153c43d67d4ff08350a64cbb169c50bdb85e Author: Emmanuele Bassi Date: Sat Apr 17 23:48:15 2021 +0100 Drop OS/2 support OS/2 support was last built in Cairo 1.12, which was released 10 years ago. Additionally, OS/2 is not supported by Meson. README | 11 +- boilerplate/Makefile.win32.features | 10 - build/Makefile.win32.features | 1 - build/Makefile.win32.features-h | 3 - build/configure.ac.features | 1 - configure.ac | 13 - meson.build | 1 - perf/cairo-perf.c | 9 +- src/Makefile.sources | 4 - src/Makefile.win32.features | 14 - src/cairo-mutex-impl-private.h | 15 - src/cairo-os2-private.h | 67 -- src/cairo-os2-surface.c | 1416 ----------------------------------- src/cairo-os2.h | 110 --- src/cairo-time.c | 28 - test/api-special-cases.c | 3 - test/error-setters.c | 9 - 17 files changed, 3 insertions(+), 1712 deletions(-) commit 1fa3b10ccea26ae9259674bbf10ac86a8abcb908 Author: Emmanuele Bassi Date: Sun Apr 18 10:56:21 2021 +0100 Remove boilerplate for the Skia surface The Skia surface is not there any more. boilerplate/Makefile.sources | 1 - boilerplate/cairo-boilerplate-skia.c | 55 ------------------------------------ build/configure.ac.features | 1 - doc/public/cairo-sections.txt | 12 -------- 4 files changed, 69 deletions(-) commit 81ecff3800e6d71dadbe42d2f29976d9208784a1 Author: Emmanuele Bassi Date: Sat Apr 17 23:44:33 2021 +0100 Remove BeOS support Nobody cares about BeOS in 2022, and it cannot be built with Meson anyway. Removing the BeOS backend also allows us to drop the dependency on a C++ compiler and simplify the Autotools build considerably by removing all the extra CXX targets. README | 7 +- boilerplate/Makefile.am | 26 +- boilerplate/Makefile.sources | 1 - boilerplate/Makefile.win32.features | 98 ---- boilerplate/cairo-boilerplate-beos.cpp | 273 --------- build/Makefile.win32.features | 1 - build/Makefile.win32.features-h | 3 - build/configure.ac.features | 7 - build/configure.ac.tools | 1 - configure.ac | 24 - doc/public/cairo-docs.xml | 1 - doc/public/language-bindings.xml | 1 - meson.build | 5 +- src/Makefile.am | 22 +- src/Makefile.am.analysis | 4 +- src/Makefile.sources | 5 - src/Makefile.win32.features | 102 ---- src/cairo-beos-surface.cpp | 984 --------------------------------- src/cairo-beos.h | 60 -- src/cairo-mutex-impl-private.h | 11 - 20 files changed, 9 insertions(+), 1627 deletions(-) commit 64ece6d545df015377a1f289829eeea20f5ae019 Author: Emmanuele Bassi Date: Sat Apr 17 23:41:13 2021 +0100 Remove Qt surface It's disabled by default, and unsupported as it depends on Qt4, which has been EOL since 2015. boilerplate/Makefile.sources | 1 - boilerplate/Makefile.win32.features | 12 - boilerplate/cairo-boilerplate-qt.cpp | 114 --- boilerplate/meson.build | 1 - build/Makefile.win32.features | 1 - build/Makefile.win32.features-h | 3 - build/configure.ac.features | 1 - configure.ac | 13 - meson.build | 16 - meson_options.txt | 1 - src/Makefile.sources | 3 - src/Makefile.win32.features | 16 - src/cairo-qt-surface.cpp | 1741 ---------------------------------- src/cairo-qt.h | 85 -- src/meson.build | 4 - 15 files changed, 2012 deletions(-) commit 2e0075e265155ff144ced23ff87c4bed4cdfbc27 Author: John Ralls Date: Thu Feb 24 14:58:57 2022 -0800 [quartz] Don't use CGContextDrawTiledImage for tiled patterns. CGContextDrawTiledImage turned up as a significant time-user while profiling a benchmark created to evaluate https://gitlab.gnome.org/GNOME/gtk/-/issues/3714. Without this commit the benchmark is able to perform a mean frame rate of 2.19 frames per second with a standard deviation of 0.09; with the commit the mean frame rate is 2.37 fps, s.d. 0.30, both over 15 10-second samples. Student's t-test reports a 9.8% likelyhood that the two represent the same distribution. src/cairo-quartz-private.h | 1 - src/cairo-quartz-surface.c | 113 ++++++++++--------------- test/reference/mask.quartz.argb32.ref.png | Bin 10599 -> 10578 bytes test/reference/trap-clip.quartz.argb32.ref.png | Bin 6108 -> 6089 bytes 4 files changed, 45 insertions(+), 69 deletions(-) commit a502280fcd4ca28c1c5d350674edde645cb784c8 Author: John Ralls Date: Sat Feb 19 18:37:16 2022 -0800 [quartz] extract function _cairo_quartz_setup_pattern_source To simplify _cairo_quartz_setup_state. src/cairo-quartz-surface.c | 283 +++++++++++++++++++++++---------------------- 1 file changed, 146 insertions(+), 137 deletions(-) commit b6e0f36ee5de521fffcadffcece1ef27bb4dfd5b Author: John Ralls Date: Sat Feb 19 18:38:29 2022 -0800 [quartz]Cleanup _cairo_quartz_cairo_repeating_surface_pattern_to_quartz src/cairo-quartz-surface.c | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) commit ae320c4d75d981220de87d9b44ffe30b2bcab69e Author: John Ralls Date: Sat Feb 19 18:34:01 2022 -0800 [quartz] Use CoreGraphics instead of Qt to write debug png file. src/cairo-quartz-surface.c | 102 ++++++++++++--------------------------------- 1 file changed, 27 insertions(+), 75 deletions(-) commit bacbe9bb2da5afec7cb64bc5a89dd898e1826e8a Author: John Ralls Date: Mon Feb 14 17:23:12 2022 -0800 [quartz] Create similar surfaces using a CGLayer for faster drawing. src/cairo-quartz-private.h | 4 +- src/cairo-quartz-surface.c | 137 +++++++++++++++++++++++++++++++++++---------- 2 files changed, 111 insertions(+), 30 deletions(-) commit 76e6a0ddf7dfee6d1bc826fd46737d75054b1a0f Author: John Ralls Date: Sun Feb 13 13:50:57 2022 -0800 [quartz] Remove cached image_surface on quartz surfaces. Caching doesn't really do anything and removing it provides a 50% speedup and gets pdf-operators-text to pass on argb32. .gitlab-ci/ignore-quartz-argb32.txt | 1 - src/cairo-quartz-private.h | 3 +- src/cairo-quartz-surface.c | 66 +++++++++++++++++++------------------ 3 files changed, 36 insertions(+), 34 deletions(-) commit 64786613ee3bf94193e9f515ca42208b5bb3d17d Author: John Ralls Date: Thu Feb 10 12:54:46 2022 -0800 [quartz] Snapshot CGBitmapContext-mapped surfaces to cache CGImages. Motivation: Avoid need to recreate CGImages for unchanged surfaces, an expensive operation, while ensuring that the CGImages are properly freed and new ones created when the surface does change. Thanks to Uli Schlacter for suggestion and coding guidance. src/cairo-quartz-surface.c | 80 +++++++++++++++++++++++++++++++++++++++++++--- src/cairo-types-private.h | 3 +- 2 files changed, 78 insertions(+), 5 deletions(-) commit 4fc72919e149a3fd26a863757832d67c661b6727 Merge: 2c24c18b1 c0d2527ad Author: Uli Schlachter Date: Thu Feb 24 14:35:17 2022 +0000 Merge branch 'mempool-overflow' into 'master' Fix integer overflows in cairo-mempool Closes #510 See merge request cairo/cairo!253 commit 2c24c18b14a27a59651f411a55b862b29836f749 Merge: c2005c22e b166db8ad Author: Uli Schlachter Date: Thu Feb 24 14:34:04 2022 +0000 Merge branch 'test-hairline' into 'master' test/hairline.c: Use Unix line endings & add copyright header See merge request cairo/cairo!234 commit c2005c22e22336118a29494ee318d6a9b9b84f88 Merge: 2ec0a8740 04394d5b1 Author: Uli Schlachter Date: Wed Feb 23 16:18:51 2022 +0000 Merge branch 'chrstphrchvz-master-patch-67648' into 'master' quartz: Fix spelling in comment See merge request cairo/cairo!284 commit 04394d5b1502d7ea9dc2c69e6f9dff3bb0e5deab Author: Christopher Chavez Date: Wed Feb 23 13:12:35 2022 +0000 quartz: Fix spelling in comment src/cairo-quartz-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ec0a874031fdb2f3d7a4eaf1d63740a0e25b268 Merge: cf7508394 f83e0ed4e Author: Uli Schlachter Date: Sun Feb 20 12:09:02 2022 +0000 Merge branch 'develop3' into 'master' miscellaneous math fixes See merge request cairo/cairo!280 commit f83e0ed4e665a1eb317b321964fae4ea934bdf58 Author: Ayman El Didi Date: Fri Feb 18 00:18:22 2022 -0700 removed redundant casts in cairoint.h In a couple of instances, ints are being casted to int before use. src/cairoint.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 915dd7942264c76c78e15989476b80ba70f70f64 Author: Ayman El Didi Date: Sat Feb 19 11:59:41 2022 -0700 fixed some multiplications prone to overflowing their type In a couple of instances, code is present where two numbers are being multiplied in a type like unsigned int, but immediately being casted to a wider type like size_t. This means, although the result can be any size_t value, the multiplication can potentially overflow before it's used because unsigned int has a smaller range of values. In another more niche case, I also cast to size_t before multiplying a signed integer, since the result is immediately used as an argument to memcpy, which would give memory corruption if the value was negative anyway. src/cairo-array.c | 8 ++++---- src/cairo-ft-font.c | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) commit cf75083941546aa53a1cdb71416de6e61a0740b6 Merge: 4d6805965 c932bb7ae Author: Uli Schlachter Date: Sat Feb 19 09:42:15 2022 +0000 Merge branch 'develop4' into 'master' added missing documentation to cairo_font_options_status See merge request cairo/cairo!281 commit c932bb7ae71f18a6b9d813bcc2c2ba4cac3d901c Author: Ayman El Didi Date: Thu Feb 17 15:58:14 2022 -0700 added missing documentation to cairo_font_options_status The documentation for cairo_font_options_status says it can return either CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY, but the implementation can also return CAIRO_STATUS_NULL_POINTER, which wasn't mentioned. src/cairo-font-options.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8f7d039801f4dd0013fa8735aec82af44389ce8a Author: Ayman El Didi Date: Thu Feb 17 23:22:43 2022 -0700 fixed some comparisons between signed and unsigned integers In some places, there were int variables being compared to unsigned ints when they would never take a negative value, exposing some edge cases that didn't need to be there. src/cairo-array.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4d680596561bde4b797c7c44484c9036e81b6258 Merge: bdb4d0586 627aa6567 Author: Emmanuele Bassi Date: Wed Feb 16 17:04:37 2022 +0000 Merge branch 'meson-xml-option' into 'master' meson: Add xml option and disable by default See merge request cairo/cairo!275 commit 627aa6567428cb4c15d482df1cdc8152c65e08d2 Author: David King Date: Tue Feb 15 13:31:48 2022 +0000 meson: Add xml option and disable by default Just like autotools does. meson.build | 3 +-- meson_options.txt | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) commit bdb4d058685f9ad4981b233661f4ee23e18140a5 Merge: c90faeb74 a62eea4ae Author: Uli Schlachter Date: Mon Feb 14 17:19:50 2022 +0000 Merge branch 'user-font-subpixel-position' into 'master' [user-font] Implement subpixel-positioning See merge request cairo/cairo!274 commit a62eea4aeca62318984065eeb0673293515ac0e3 Author: Behdad Esfahbod Date: Sat Feb 12 23:28:53 2022 -0600 [user-font] Implement subpixel-positioning See: https://github.com/harfbuzz/harfbuzz/pull/3411#issuecomment-1033118545 https://github.com/harfbuzz/harfbuzz/pull/3411#issuecomment-1033125311 https://github.com/harfbuzz/harfbuzz/pull/3411#issuecomment-1037765840 Basically the code in cairo-image-compositor.c:composite_glyphs() is flooring glyph positions and putting some phase in the glyph-id. This was being lost in the user-font backend. Fetch that and put it in the recording-surface's device-transform translation, to be applied. src/cairo-user-font.c | 3 + test/Makefile.sources | 1 + test/meson.build | 1 + test/reference/user-font-subpixel.ref.png | Bin 0 -> 357 bytes test/reference/user-font-subpixel.svg.ref.png | Bin 0 -> 351 bytes test/reference/user-font-subpixel.xfail.png | Bin 0 -> 323 bytes test/user-font-subpixel.c | 92 ++++++++++++++++++++++++++ 7 files changed, 97 insertions(+) commit c90faeb7492b1b778d18a796afe5c2e4b32a6356 Merge: cd21fa081 65d4325e6 Author: Behdad Esfahbod Date: Sun Feb 13 05:08:03 2022 +0000 Merge branch 'mixed-color-clusters' into 'master' Fix mixed color clusters See merge request cairo/cairo!273 commit 65d4325e6f674e7b45b3001d9e4bc0aeecb19e0e Author: Matthias Clasen Date: Sat Feb 12 21:19:39 2022 -0600 Fix mixed color clusters When rendering clusters that have colored and non-colored glyphs, we were falling back to using show_text_glyphs, rendering all glyphs in the cluster without color. Instead, make composite_one_color_glyph smart enough to handle non-color glyphs, and only skip clusters that are entirely non-color. Testcase: hb-view AmiriQuranColored.otf -u 627,64e src/cairo-surface.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) commit cd21fa08144fe22d0b4c28a77f654b4e6fda11ef Merge: 396d258e4 1bc922d04 Author: Emmanuele Bassi Date: Fri Feb 11 11:59:03 2022 +0000 Merge branch 'fix-user-font-leaks' into 'master' user-font: Plug some memory leaks See merge request cairo/cairo!271 commit 396d258e4104219599c2e196f6a5ce4ea82178fd Merge: fb3734fac 603cdf939 Author: Emmanuele Bassi Date: Fri Feb 11 11:43:02 2022 +0000 Merge branch 'fix-rtl-color-glyphs' into 'master' Fix rtl handling for color glyphs Closes #533 See merge request cairo/cairo!272 commit 1bc922d0454080475844dcb2bf32eaa0c9b79889 Author: Emmanuele Bassi Date: Fri Feb 11 10:58:39 2022 +0000 Apply 1 suggestion(s) to 1 file(s) src/cairo-user-font.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 603cdf939f164142ef53a0dd49e95057e7df8a6f Author: Matthias Clasen Date: Fri Feb 11 05:44:39 2022 -0500 Fix rtl handling for color glyphs When the run contains a mix of color and non-color glyphs, composite_color_glyphs returns the non-color glyphs unhandled in the same array. In the rtl case, the glyphs are processed from the end and the unhandled glyphs are accumulated at the end as well, and we need to move them to the beginning of the array before we return. Add the missing memmove call to do that. Fixes: #533 src/cairo-surface.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 139f3f25b132c173f64a6946d518dcc8a35f168e Author: Matthias Clasen Date: Thu Feb 10 22:19:10 2022 -0500 Plug another memory leak src/cairo-user-font.c | 5 +++++ 1 file changed, 5 insertions(+) commit 537445c4f07d02e84e6838f6f4c218487c7e113d Author: Matthias Clasen Date: Thu Feb 10 21:17:58 2022 -0500 user-font: Plug some memory leaks We were leaking a cairo_t and a surface here, in some code paths. src/cairo-user-font.c | 3 +++ 1 file changed, 3 insertions(+) commit fb3734fac0b41eb370911b04cbfa6604a99e6bf7 Merge: a6b2a39f3 57498b301 Author: Emmanuele Bassi Date: Fri Jan 21 14:14:23 2022 +0000 Merge branch 'fix-build-when-pdf-is-disabled' into 'master' meson: Fix build when PDF backend is disabled See merge request cairo/cairo!269 commit 57498b301c10fa24b4882c1b2d5785eff3f25c1a Author: Nirbheek Chauhan Date: Fri Jan 21 11:58:09 2022 +0530 meson: Fix build when PDF backend is disabled Symbols from cairo-tag-stack.c are used by cairo-tag-attributes.c, so this should be in the same list of sources as that. Fixes this build error: ``` /usr/bin/ld: src/libcairo.so.2.11705.0.p/cairo-tag-attributes.c.o: in function `parse_array': /path/to/cairo/_build/../src/cairo-tag-attributes.c:347: undefined reference to `_cairo_tag_error' /usr/bin/ld: src/libcairo.so.2.11705.0.p/cairo-tag-attributes.c.o: in function `parse_name': /path/to/cairo/cairo/_build/../src/cairo-tag-attributes.c:359: undefined reference to `_cairo_tag_error' /usr/bin/ld: src/libcairo.so.2.11705.0.p/cairo-tag-attributes.c.o: in function `parse_attributes': /path/to/cairo/cairo/_build/../src/cairo-tag-attributes.c:410: undefined reference to `_cairo_tag_error' /usr/bin/ld: /path/to/cairo/cairo/_build/../src/cairo-tag-attributes.c:431: undefined reference to `_cairo_tag_error' /usr/bin/ld: /path/to/cairo/cairo/_build/../src/cairo-tag-attributes.c:441: undefined reference to `_cairo_tag_error' /usr/bin/ld: src/libcairo.so.2.11705.0.p/cairo-tag-attributes.c.o:/path/to/cairo/cairo/_build/../src/cairo-tag-attributes.c:455: more undefined references to `_cairo_tag_error' follow /usr/bin/ld: src/libcairo.so.2.11705.0: hidden symbol `_cairo_tag_error' isn't defined ``` src/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 895b249b0ac6d2c45f47423f6529359991a66c3c Author: Adrian Johnson Date: Sun Jan 9 17:55:11 2022 +1030 pdf: ensure filenames are correctly encoded src/cairo-pdf-interchange.c | 103 ++++++++++++++++++++++++++++++++++++++++++-- src/cairo-pdf-surface.c | 16 +++++-- src/cairo-pdf.h | 6 ++- test/pdf-tagged-text.c | 6 +++ 4 files changed, 123 insertions(+), 8 deletions(-) commit a6b2a39f36aa2ac9a1d8afec16d042694839f48f Merge: 5c9112b25 ef149976e Author: Uli Schlachter Date: Wed Jan 12 16:52:45 2022 +0000 Merge branch 'fix-doc-warning' into 'master' Fix a doc comment See merge request cairo/cairo!263 commit 5c9112b25ea97566e8c8707420dec8f76c02f6d6 Merge: 46c0b8bb4 e3b4db164 Author: Uli Schlachter Date: Sun Jan 9 19:02:22 2022 +0000 Merge branch 'meson-redundant-version_compare' into 'master' meson: Remove useless version_compare() See merge request cairo/cairo!267 commit e3b4db1645775a7c176f1bcf72727b1e946d4dd1 Author: Nirbheek Chauhan Date: Sun Jan 9 17:17:28 2022 +0530 meson: Remove useless version_compare() We require meson 0.56 in project() now, all these are redundant. meson.build | 123 +++++++++++++++++++++++-------------------------- subprojects/.gitignore | 2 +- 2 files changed, 59 insertions(+), 66 deletions(-) commit a4d8eb98ba8d05fd0026f9c2f9433bdfedde1d06 Author: Adrian Johnson Date: Sun Jan 9 15:13:34 2022 +1030 pdf: ensure url strings are correctly encoded Fixes #526 src/cairo-pdf-interchange.c | 15 +++++++++++++-- src/cairo-pdf-surface.c | 28 ++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 10 deletions(-) commit 46c0b8bb4fe53422c93619628212717251821f2e Merge: a04786b93 ca25e9860 Author: Uli Schlachter Date: Sat Jan 1 19:37:24 2022 +0000 Merge branch 'amos/win32-static-build' into 'master' Set CAIRO_WIN32_STATIC_BUILD when doing a static build on windows See merge request cairo/cairo!265 commit ca25e9860d569f57e361d7956ae1d819a57493fb Author: Amos Wenger Date: Wed Dec 8 13:36:05 2021 +0100 Upgrade to expat-2.2.9-4 wrap This provides the XML_STATIC definition when cairo is built as a static library on Windows, see https://github.com/mesonbuild/wrapdb/pull/237 subprojects/expat.wrap | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 4d9657ad0df20c4bb56e33a8d4b33b91f7c5a9f7 Author: Amos Wenger Date: Tue Dec 7 12:13:02 2021 +0100 Set CAIRO_WIN32_STATIC_BUILD when doing a static build on windows src/meson.build | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit ef149976e29e5809029d8f98e9506c4af2a8439f Author: Uli Schlachter Date: Tue Nov 2 20:10:10 2021 +0100 Fix a doc comment This commit fixes the following warning from our check-def.sh: PASS: check-def.sh Checking documentation for incorrect syntax ./cairoint.h (523): ERROR: Get invalid doc id (should be 'cairo_...:') ./cairoint.h (534): ERROR: Get bad line: ' */' ./cairoint.h (534): ERROR: Get documentation comment not closed with **/ Signed-off-by: Uli Schlachter src/cairoint.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a04786b9330109ce54bf7f65c7068281419cec6a Merge: b63dc83c8 d3e0d2723 Author: Tim-Philipp Müller Date: Thu Oct 7 14:29:57 2021 +0000 Merge branch 'ci-update-windows-image-2' into 'master' ci: bump windows image to latest See merge request cairo/cairo!258 commit d3e0d27234a045b2279dd4db54bdec81f03920f0 Author: Tim-Philipp Müller Date: Thu Oct 7 14:37:49 2021 +0100 ci: update links in ci template from gst-ci to gstreamer monorep .gitlab-ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit e1646a740349eff3c78b474497c688647a7a6b9a Author: Tim-Philipp Müller Date: Thu Oct 7 14:31:41 2021 +0100 ci: bump windows image to latest Which should include the subprojects cache again. .gitlab-ci.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit b63dc83c8b7844778cec2fa4bebea2651e397755 Merge: d87fe096b ccb57d21c Author: Adrian Johnson Date: Mon Oct 4 02:35:50 2021 +0000 Merge branch 'ci-update-windows-image' into 'master' ci: update windows image and fix pixman build on android Closes #515 See merge request cairo/cairo!257 commit ccb57d21ce0069631b8a723bddc9ed05c3e5bbf7 Author: Tim-Philipp Müller Date: Sun Oct 3 13:10:12 2021 +0100 ci: disable aarch64 neon asm in pixman to fix android build To work around build failures, see #515 .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3ba30bf7e56c4c9317d6174db20375097b2f2f4 Author: Tim-Philipp Müller Date: Fri Oct 1 16:38:43 2021 +0100 ci: update windows image Some root certs expired, which causes problems with letsencrypt certificates, so update to latest image with updated certificates. https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/ Fixes #515 .gitlab-ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d87fe096b90005ced23c76f3b44c1a3ad03d9b55 Merge: 4f761bd5a 8ea4ae541 Author: Adrian Johnson Date: Mon Sep 20 09:01:58 2021 +0000 Merge branch 'user-font-foreground-color' into 'master' Support user fonts that use the foreground color See merge request cairo/cairo!249 commit 8ea4ae5413bd8ae1497e11a473d173cfc2475ae6 Author: Adrian Johnson Date: Mon Aug 30 20:41:18 2021 +0930 Allow user fonts to use the foreground color src/cairo-pattern-private.h | 1 + src/cairo-pattern.c | 6 + src/cairo-recording-surface-private.h | 5 + src/cairo-recording-surface.c | 149 ++++++++++++++++-------- src/cairo-scaled-font-private.h | 5 +- src/cairo-surface-wrapper-private.h | 5 + src/cairo-surface-wrapper.c | 33 ++++++ src/cairo-user-font.c | 23 +++- src/cairo.h | 16 +++ test/reference/user-font-color.image16.ref.png | Bin 3496 -> 3527 bytes test/reference/user-font-color.pdf.ref.png | Bin 4156 -> 4234 bytes test/reference/user-font-color.quartz.ref.png | Bin 4061 -> 4163 bytes test/reference/user-font-color.ref.png | Bin 4155 -> 4233 bytes test/reference/user-font-color.script.xfail.png | Bin 1964 -> 1969 bytes test/reference/user-font-color.svg.ref.png | Bin 4152 -> 4289 bytes test/user-font-color.c | 8 +- 16 files changed, 195 insertions(+), 56 deletions(-) commit 4f761bd5aae51a2ea9cc45931e993a46dd05c93a Merge: 994e33215 664751159 Author: Uli Schlachter Date: Fri Sep 17 13:48:46 2021 +0000 Merge branch 'fix-core-diff' into 'master' Explicitly handle image formats in buffer_diff_core and pdiff_compare Closes #25 See merge request cairo/cairo!243 commit 994e33215e35e49981dea5b459a9b5b85d4cd1b1 Merge: 4c520fea2 23815978c Author: Adrian Johnson Date: Thu Sep 16 21:47:25 2021 +0000 Merge branch 'color-font-foreground-color' into 'master' Support color fonts that use the foreground color See merge request cairo/cairo!246 commit 23815978cc6eb3b681788ab43c4d8f5979a39869 Merge: fea246310 4c520fea2 Author: Adrian Johnson Date: Fri Sep 17 06:25:07 2021 +0930 Merge branch 'master' into color-font-foreground-color commit 4c520fea2124f1d2d200ca86045f1de138809148 Merge: ffa2374b0 0ce4c0fc2 Author: Adrian Johnson Date: Thu Sep 16 20:47:50 2021 +0000 Merge branch 'custom-metadata' into 'master' Add cairo_pdf_surface_set_custom_metadata() See merge request cairo/cairo!240 commit ffa2374b0521836a1da5e7bf1e0ae0a711a88a8e Merge: 224b44e9d 6e3c7431f Author: Adrian Johnson Date: Thu Sep 16 20:47:08 2021 +0000 Merge branch 'large-pdf-file' into 'master' Allow > 2GB PDF files on platforms with 32-bit long See merge request cairo/cairo!251 commit c0d2527ad03f3d3251f016a6973838095b12a0c2 Author: Uli Schlachter Date: Wed Sep 15 18:02:05 2021 +0200 Fix integer overflows in cairo-mempool The expression "1 << whatever" has type int, no matter what the type of "whatever" is. Thus, "1 << 31" ends up overflowing an "int" and undefined behaviour occurs. The above happened in cairo-mempool.c. I saw the following line: pool->free_bytes += 1 << (bits + pool->min_bits); being executed with bits=15 and pool->min_bits=16, i.e. we had 1 << 31. This ended up being INT_MIN due to the overflow. This was then promoted to size_t and we ended up with a *huge* value being added to free_bytes. This is obviously not the intended behaviour. Thus, this commit replaces the "1" in all left shifts in cairo-mempool.c with "((size_t) 1)". This fix avoids the integer overflow, but it does not fix issue #510, because some allocation keeps the memory pool alive. Related-to: https://gitlab.freedesktop.org/cairo/cairo/-/issues/510 Signed-off-by: Uli Schlachter src/cairo-mempool.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit 224b44e9d4a7f083df4217b1b6b3cfbec82f9928 Merge: 918fe0266 08cd1fdeb Author: Tim-Philipp Müller Date: Sun Sep 12 15:49:13 2021 +0000 Merge branch 'fix-no-png-dep' into 'master' meson: fix build without libpng See merge request cairo/cairo!252 commit 08cd1fdebec79ced88f5912fc9703a3924c34334 Author: Tim-Philipp Müller Date: Sun Sep 12 15:55:31 2021 +0100 meson: fix build without libpng meson.build:966:2: ERROR: Expected 1 arguments, got 0. meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 918fe02666f681decb79a0dd8dd782b1f42b13f8 Merge: 42d3f4cc2 2822728f2 Author: Adrian Johnson Date: Thu Sep 2 20:36:19 2021 +0000 Merge branch 'ming-warnings' into 'master' Fix some MinGW warnings See merge request cairo/cairo!247 commit 2822728f2af36d7599962d8e57d293cd1a5a2f69 Author: Adrian Johnson Date: Sat Aug 28 14:08:25 2021 +0930 Fix some MinGW warnings The FT change is because my MinGW build is using a more recent version of FT. Remove the disabled _cairo_win32_scaled_font_text_to_glyphs() code to fix the defined but not used warning. _cairo_win32_scaled_font_text_to_glyphs() was diabled in d9408041aa with the comment: "Currently disable the win32-font text_to_glyphs(), until that one is updated. Or better yet, remove it and implement ucs4_to_index(). It's the toy font API afterall." _cairo_win32_scaled_font_ucs4_to_index() was added in d1c619bc7d. boilerplate/cairo-boilerplate.h | 7 +- src/cairo-compiler-private.h | 7 +- src/cairo-ft-font.c | 15 ++- src/cairo-scaled-font.c | 2 +- src/win32/cairo-win32-display-surface.c | 36 +++-- src/win32/cairo-win32-font.c | 222 +------------------------------ src/win32/cairo-win32-printing-surface.c | 7 + test/cairo-test.c | 4 + test/pdf-tagged-text.c | 2 + util/cairo-script/csi-replay.c | 2 + util/cairo-trace/trace.c | 7 +- 11 files changed, 72 insertions(+), 239 deletions(-) commit 6e3c7431ff3f9179c355289ac1fa3bab8750c463 Author: Adrian Johnson Date: Wed Sep 1 21:33:29 2021 +0930 Allow > 2GB PDF files on platforms with 32-bit long src/cairo-output-stream-private.h | 4 ++-- src/cairo-output-stream.c | 24 ++++++++++++++++++-- src/cairo-pdf-surface-private.h | 2 +- src/cairo-pdf-surface.c | 48 +++++++++++++++++++-------------------- 4 files changed, 49 insertions(+), 29 deletions(-) commit 6647511593ce0ab1de3dbd514796e926e232d644 Author: Manuel Stoeckl Date: Wed Aug 25 21:08:36 2021 -0400 test: explicitly handle image formats in buffer_diff_core In practice, the A and B images may be any mixture of RGB24 and ARGB32 formats, so this change accepts all combinations of these types, and converts the pixel values to a common (ARGB32) format as needed. Some of the newly added test failures are cases where the image output is RGB24, but the matching reference image is ARGB32 with noticeable transparency. Some of the newly passing tests are cases where the unused 'alpha' channel of an RGB24 image was not equal to 0xff, and the previous code had incorrectly used this channel in max_diff calculations. .gitlab-ci/ignore-image-rgb24.txt | 42 +++++++++++ .gitlab-ci/ignore-image16-rgb24.txt | 21 ++++++ .gitlab-ci/ignore-pdf-argb32.txt | 28 ------- .gitlab-ci/ignore-pdf-rgb24.txt | 62 +++++++-------- .gitlab-ci/ignore-quartz-argb32.txt | 1 + .gitlab-ci/ignore-quartz-rgb24.txt | 33 +++++++- .gitlab-ci/ignore-recording-rgb24.txt | 42 +++++++++++ .gitlab-ci/ignore-script-argb32.txt | 104 -------------------------- .gitlab-ci/ignore-svg11-argb32.txt | 11 --- .gitlab-ci/ignore-svg11-rgb24.txt | 65 +++++++++++++--- .gitlab-ci/ignore-xcb-fallback-rgb24.txt | 45 ++++++++++- .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt | 51 +++++++++++-- .gitlab-ci/ignore-xcb-rgb24.txt | 106 +++++++++----------------- .gitlab-ci/ignore-xcb-window&-rgb24.txt | 100 +++++++++---------------- .gitlab-ci/ignore-xcb-window-rgb24.txt | 100 +++++++++---------------- .gitlab-ci/ignore-xlib-fallback-rgb24.txt | 112 +++++++++++----------------- .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt | 53 +++++++++++-- .gitlab-ci/ignore-xlib-rgb24.txt | 86 +++++++++------------ .gitlab-ci/ignore-xlib-window-rgb24.txt | 83 +++++++++------------ test/buffer-diff.c | 43 +++++++---- 20 files changed, 600 insertions(+), 588 deletions(-) commit 04906075847dd5f13d9b02503032a2fbb557b32e Author: Manuel Stoeckl Date: Wed Aug 25 21:44:00 2021 -0400 pdiff: convert RGB24 image values to ARGB32 on read To avoid reading a potentially garbage alpha channel when users of pdiff_compare pass in RGB24 images, if the format is RGB24, force the alpha channel to be 0xff. This commit also updates CI to adjust for the new tests that have started/stopped failing. New failures often are cases where the reference image has alpha transparency, but the test output does not; new passing tests may indicate that the unused alpha channel of an RGB24 image was garbage, but now is ignored. .gitlab-ci/ignore-image-argb32.txt | 1 + .gitlab-ci/ignore-image-rgb24.txt | 11 +++++++++ .gitlab-ci/ignore-quartz-rgb24.txt | 7 ++++-- .gitlab-ci/ignore-recording-rgb24.txt | 8 ++++++ .gitlab-ci/ignore-xcb-fallback-rgb24.txt | 6 +++++ .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt | 6 +++++ .gitlab-ci/ignore-xcb-rgb24.txt | 4 +-- .gitlab-ci/ignore-xcb-window&-rgb24.txt | 3 +-- .gitlab-ci/ignore-xcb-window-rgb24.txt | 1 + .gitlab-ci/ignore-xlib-fallback-rgb24.txt | 4 +++ .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt | 4 +++ .gitlab-ci/ignore-xlib-rgb24.txt | 3 --- .gitlab-ci/ignore-xlib-window-rgb24.txt | 2 -- test/pdiff/pdiff.c | 38 ++++++++++++++++++----------- 14 files changed, 72 insertions(+), 26 deletions(-) commit a8012953ed2821b1d9444b28e1dcc95846004dce Author: Manuel Stoeckl Date: Sun Aug 29 11:54:36 2021 -0400 ci: sort lists of ignored tests .gitlab-ci/ignore-image-argb32.txt | 10 +-- .gitlab-ci/ignore-image-rgb24.txt | 10 +-- .gitlab-ci/ignore-image16-rgb24.txt | 126 ++++++++++++++-------------- .gitlab-ci/ignore-pdf-argb32.txt | 36 ++++---- .gitlab-ci/ignore-pdf-rgb24.txt | 44 +++++----- .gitlab-ci/ignore-quartz-argb32.txt | 32 +++---- .gitlab-ci/ignore-quartz-rgb24.txt | 34 ++++---- .gitlab-ci/ignore-recording-argb32.txt | 20 ++--- .gitlab-ci/ignore-recording-rgb24.txt | 20 ++--- .gitlab-ci/ignore-script-argb32.txt | 96 ++++++++++----------- .gitlab-ci/ignore-svg11-argb32.txt | 22 ++--- .gitlab-ci/ignore-svg11-rgb24.txt | 24 +++--- .gitlab-ci/ignore-xcb-argb32.txt | 38 ++++----- .gitlab-ci/ignore-xcb-fallback-rgb24.txt | 10 +-- .gitlab-ci/ignore-xcb-render-0-0-argb32.txt | 16 ++-- .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt | 20 ++--- .gitlab-ci/ignore-xcb-rgb24.txt | 76 ++++++++--------- .gitlab-ci/ignore-xcb-window&-rgb24.txt | 68 +++++++-------- .gitlab-ci/ignore-xcb-window-rgb24.txt | 68 +++++++-------- .gitlab-ci/ignore-xlib-argb32.txt | 60 ++++++------- .gitlab-ci/ignore-xlib-fallback-rgb24.txt | 32 +++---- .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt | 14 ++-- .gitlab-ci/ignore-xlib-rgb24.txt | 94 ++++++++++----------- .gitlab-ci/ignore-xlib-window-rgb24.txt | 84 +++++++++---------- 24 files changed, 527 insertions(+), 527 deletions(-) commit 42d3f4cc29338dce02faf062ef6f18a1fe32ca99 Merge: 187fd83aa b1135db01 Author: Tim-Philipp Müller Date: Sat Aug 28 12:49:37 2021 +0000 Merge branch 'meson-pthread-tests' into 'master' meson: enable pthread tests if 'real pthread' is available Closes #477 See merge request cairo/cairo!176 commit b1135db01415601c2393e4b11dadead7e44fb5fb Author: Tim-Philipp Müller Date: Sat Aug 28 12:57:17 2021 +0100 test: update quartz ref image to fix macos pthread test failure The proper pthread check activated some tests that weren't active before, which resulted in a test failure apparently caused by inexact test rendering. Update the quartz reference image accordingly. test/reference/pthread-show-text.quartz.ref.png | Bin 46034 -> 46852 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit e78a90ed983d98a2bc8364a16f33e6319e632058 Author: Tim-Philipp Müller Date: Wed May 5 00:15:16 2021 +0100 meson: enable pthread tests if 'real pthread' is available Fixes #477 test/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 187fd83aaa3a342e598f2731ca0e78414c7a2ffa Merge: 6d169c699 38f018656 Author: Tim-Philipp Müller Date: Sat Aug 28 11:52:26 2021 +0000 Merge branch 'meson-rely-on-subproject-wrap-promotion-for-indirectly-needed-wraps' into 'master' meson: rely on automatic wrap promotion from subprojects Closes #445 See merge request cairo/cairo!131 commit fea24631076f74a3202ba0233be85588ae28db36 Author: Adrian Johnson Date: Fri Aug 27 23:12:24 2021 +0930 Support color fonts that use the foreground color COLR fonts can have a layer with the same color as the current text color. This change passes the current color (if solid) through to the font backend where it can be used to render color fonts. scaled_glyph_lookup checks if the foreground color has changed (for glyph that require it) and requests a new color surface if required. This also fixes a bug where scaled_glyph_lookup would always request a color surface for glyphs for glyphs in color fonts that do not have color. configure.ac | 2 +- meson.build | 1 + src/cairo-ft-font.c | 40 +++++++++++++++++++++++++++++-- src/cairo-gl-glyphs.c | 2 ++ src/cairo-image-compositor.c | 5 ++++ src/cairo-quartz-font.c | 3 ++- src/cairo-scaled-font-private.h | 9 ++++++- src/cairo-scaled-font-subsets.c | 2 ++ src/cairo-scaled-font.c | 41 +++++++++++++++++++++++++++++--- src/cairo-script-surface.c | 5 ++++ src/cairo-surface.c | 13 +++++++--- src/cairo-svg-surface.c | 2 ++ src/cairo-type1-fallback.c | 3 +++ src/cairo-type3-glyph-surface.c | 4 ++++ src/cairo-user-font.c | 6 +++-- src/cairo-xcb-surface-render.c | 3 +++ src/cairo-xlib-render-compositor.c | 2 ++ src/cairoint.h | 20 ++++++++++++++-- src/drm/cairo-drm-i915-glyphs.c | 2 ++ src/drm/cairo-drm-i965-glyphs.c | 2 ++ src/drm/cairo-drm-intel.c | 3 ++- src/test-base-compositor-surface.c | 1 + src/win32/cairo-win32-font.c | 4 +++- src/win32/cairo-win32-printing-surface.c | 2 ++ 24 files changed, 160 insertions(+), 17 deletions(-) commit 6d169c6995c3df70e8db7a8c88ea48ac9e53462d Merge: 5e76dd7a5 e73f236da Author: Adrian Johnson Date: Sat Aug 28 07:55:49 2021 +0000 Merge branch 'cairo-fix-glyph-clipping' into 'master' Remove the approximate glyph bounds check - with updated ref images See merge request cairo/cairo!245 commit e73f236da6ad8bc98b99f4e152cc9c85c47fcb11 Author: Adrian Johnson Date: Sat Aug 14 19:19:25 2021 +0930 Update user-font-mask ref images test/reference/user-font-mask.quartz.ref.png | Bin 0 -> 5511 bytes test/reference/user-font-mask.recording.ref.png | Bin 0 -> 5511 bytes test/reference/user-font-mask.script.ref.png | Bin 0 -> 5511 bytes test/reference/user-font-mask.xcb-render-0_0.ref.png | Bin 0 -> 5511 bytes test/reference/user-font-mask.xcb.ref.png | Bin 0 -> 5511 bytes test/reference/user-font-mask.xlib-render-0_0.ref.png | Bin 0 -> 5511 bytes test/reference/user-font-mask.xlib.ref.png | Bin 0 -> 5511 bytes 7 files changed, 0 insertions(+), 0 deletions(-) commit 4c7a8afb3bf06743ae9502e68e7b964201606536 Author: Matthias Clasen Date: Fri Jul 30 19:28:26 2021 -0400 Remove the approximate glyph bounds check We are trying to get an approximate bounding box for the extents of a glyph string and use it for bailing early if there's nothing to do, but the code computing that approximation makes invalid assumptions: It assumes that a glyph never extends further than max-advance-width before or after its position. That is not true in general, as can be seen in https://gitlab.gnome.org/GNOME/gtk/-/issues/4132 In the example there, we have a monospace fonts with ligatures that have a negative lsb of two or three times the glyph width. The optimization here could theoretically be fixed by iterating over the font once to determine suitable values for how far glyphs can extend before or after their position, but this patch just removes it. src/cairo-composite-rectangles.c | 14 -------------- 1 file changed, 14 deletions(-) commit 5e76dd7a5c0585515eeef5099f12b273c94d3b0f Merge: 9bb1cbf72 a8c8363e3 Author: Adrian Johnson Date: Fri Aug 27 23:44:08 2021 +0000 Merge branch 'fix-comparison-warning' into 'master' Fix comparison is always false in malloc overflow check See merge request cairo/cairo!236 commit 9bb1cbf7249d12dd69c8aca3825711645da20bcb Merge: 923715f2e 78d267ee7 Author: Adrian Johnson Date: Fri Aug 27 23:41:56 2021 +0000 Merge branch 'fix-warnings' into 'master' Fix build warnings See merge request cairo/cairo!239 commit 38f0186560156ac7dd26d55239f95bf87f79fcf3 Author: Tim-Philipp Müller Date: Thu Feb 25 00:31:31 2021 +0000 meson: rely on automatic wrap promotion from subprojects Don't ship wrap files for things that are only dependencies of dependencies, such as gperf (for fontconfig), or libffi + proxy-libintl (for glib). Instead, let Meson use the wraps that these subprojects ship, which Meson will pick up automatically since v56, so there's no need for us to ship these wraps any more. Bump the Meson requirement to 0.56 accordingly. Fix expat package dep for fedora ci and bump the tag so it gets picked up. See https://mesonbuild.com/Release-notes-for-0-56-0.html#wraps-from-subprojects-are-automatically-promoted Closes #445 .gitlab-ci.yml | 4 ++-- Makefile.am | 3 --- meson.build | 2 +- subprojects/gperf.wrap | 5 ----- subprojects/libffi.wrap | 4 ---- subprojects/proxy-libintl.wrap | 4 ---- 6 files changed, 3 insertions(+), 19 deletions(-) commit a8c8363e35ceb78db05be29f6839145a8c97bdd4 Author: Adrian Johnson Date: Thu Aug 26 21:05:55 2021 +0930 Add overflow to Makefile.sources test/Makefile.sources | 1 + 1 file changed, 1 insertion(+) commit 068e9b2eb4d2b50e84c8e0debf38e8ee0b955307 Author: Adrian Johnson Date: Sun Aug 15 16:13:15 2021 +0930 Fix malloc overflow check warning To fix this warning: ../src/cairo-malloc-private.h:83:32: warning: comparison is always false due to limited range of data type [-Wtype-limits] 83 | ((size) != 0 && (size_t) (a) >= SIZE_MAX / (size_t) (size) ? NULL : \ | ^~ Create two new macros to do the overflow checks: _cairo_addl_size_t_overflow and _cairo_mul_size_t_overflow. Implement them using compiler builtins where available. Update cairo-malloc-private to use these fuctions and add an overflow test to test the functions. meson.build | 1 + src/cairo-compiler-private.h | 54 +++++++++++ src/cairo-malloc-private.h | 56 ++++++++--- test/meson.build | 1 + test/overflow.c | 214 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 312 insertions(+), 14 deletions(-) commit 0d809e8051439a4a88a4a97a89e2715d92554a25 Author: Adrian Johnson Date: Sun Aug 15 12:54:44 2021 +0930 Fix file mode of mime_unqiue-id.c test/mime-unique-id.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) commit 923715f2e9acec31f6af406f39e14c36f9f7365c Merge: 9f44d4c7c 2fb156bdc Author: Uli Schlachter Date: Mon Aug 23 16:31:57 2021 +0000 Merge branch 'fix-png-write-endian' into 'master' Read/write 16-bpc PNG data in native endian Closes #501 See merge request cairo/cairo!230 commit 9f44d4c7c509e7aa348f627f6b21dad62762810c Merge: 2dec76ddf ca3e776ab Author: Adrian Johnson Date: Sun Aug 22 06:48:10 2021 +0000 Merge branch 'ps-image' into 'master' Fix PS emit image for 16-bit images See merge request cairo/cairo!242 commit ca3e776abe6744c94fb4dbff4533308a84661097 Author: Adrian Johnson Date: Sun Aug 22 15:19:47 2021 +0930 Fix PS emit image for 16-bit images src/cairo-ps-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ce4c0fc29230a15c12e66571dba2dbfa428285c Author: Adrian Johnson Date: Wed Aug 18 19:41:26 2021 +0930 Add cairo_pdf_surface_set_custom_metadata() doc/public/cairo-sections.txt | 1 + src/cairo-pdf-interchange.c | 100 ++++++++++++++++++++++++++++++++++++++++ src/cairo-pdf-surface-private.h | 11 +++++ src/cairo-pdf-surface.c | 36 +++++++++++++++ src/cairo-pdf.h | 5 ++ test/pdf-tagged-text.c | 6 +++ 6 files changed, 159 insertions(+) commit 78d267ee7af3c7cabdef437cd6a670111fc6062b Author: Adrian Johnson Date: Tue Aug 17 06:25:29 2021 +0930 Fix some warnings perf/cairo-perf-graph-widget.c | 2 -- src/cairo-cff-subset.c | 6 +++--- src/cairo-svg-surface.c | 27 ++++++++++++--------------- src/cairo-type1-subset.c | 2 +- src/cairo-user-font.c | 6 +++--- test/cairo-test-trace.c | 6 ++++-- test/operator-www.c | 4 ++-- 7 files changed, 25 insertions(+), 28 deletions(-) commit ba3823e6b82c76bfe962f570dbf48e7c6a8126a6 Author: Adrian Johnson Date: Mon Aug 16 18:23:17 2021 +0930 Fix cast between incompatible function types warnings warning: cast between incompatible function types from ‘cairo_status_t (*)(void *, const cairo_point_t *)’ {aka ‘enum _cairo_status (*)(void *, const struct _cairo_point *)’} to ‘cairo_status_t (*)(void *, const cairo_point_t *, const cairo_slope_t *)’ {aka ‘enum _cairo_status (*)(void *, const struct _cairo_point *, const struct _cairo_slope *)’} [-Wcast-function-type] src/cairo-path-fill.c | 10 +++++++++- src/cairo-path-fixed.c | 12 ++++++++++-- src/cairo-path-in-fill.c | 10 +++++++++- src/cairo-path-stroke-traps.c | 10 +++++++++- src/cairo-path-stroke.c | 24 ++++++++++++++++++++---- 5 files changed, 57 insertions(+), 9 deletions(-) commit 2dec76ddfe9499b5a6efc1ccc8e52536a314543b Merge: e2f83446f 8ee4d5f1d Author: Adrian Johnson Date: Mon Aug 16 20:09:59 2021 +0000 Merge branch 'warning-level' into 'master' meson: Use warning_level See merge request cairo/cairo!237 commit e2f83446f9246bda70cf5481097f058123e2f6e6 Merge: 919178f1e 4c38b3db9 Author: Emmanuele Bassi Date: Sun Aug 15 19:25:58 2021 +0000 Merge branch 'glib-volatile' into 'master' gobject: Remove the use of volatile See merge request cairo/cairo!238 commit 4c38b3db992760ed49ff58a345b039a383432024 Author: Emmanuele Bassi Date: Sun Aug 15 19:29:53 2021 +0100 gobject: Remove the use of volatile It is pointless, and it has been deprecated by GLib: https://gitlab.gnome.org/GNOME/glib/-/issues/600 http://c.isvolatileusefulwiththreads.com/ Now we're just getting compiler warnings with recent versions of GCC. util/cairo-gobject/cairo-gobject-enums.c | 176 ++++++++++++++--------------- util/cairo-gobject/cairo-gobject-structs.c | 8 +- 2 files changed, 92 insertions(+), 92 deletions(-) commit 8ee4d5f1d346c4933fed993ca3b132b4952c432d Author: Emmanuele Bassi Date: Sun Aug 15 19:12:49 2021 +0100 meson: Enable _FORTIFY_SOURCE for optimized builds Otherwise we are going to get warnings from the C library. meson.build | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 8b5e285e26ca126a5ae40211bda074fe460a0614 Author: Emmanuele Bassi Date: Sun Aug 15 19:06:10 2021 +0100 meson: Use warning_level Instead of using `-Wall` and `-Wextra` as compiler flags, set `warning_level=2` as the default warning option. meson.build | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 919178f1e952957fd5701874479d86df04baaa99 Merge: 3dc9607f8 d9c9e3b69 Author: Uli Schlachter Date: Sun Aug 15 13:57:42 2021 +0000 Merge branch 'ebassi/build-fixes' into 'master' build: Use subdir-objects See merge request cairo/cairo!180 commit 3dc9607f8d080d7256c70d3b4452f47f8346d64a Merge: c77306019 8c3c41ca7 Author: Uli Schlachter Date: Sun Aug 15 13:56:42 2021 +0000 Merge branch 'color-user-font-getter' into 'master' Add cairo_user_font_face_get_render_color_glyph_func See merge request cairo/cairo!233 commit b166db8ad94a55b99971d43ac438cd15f40bb29f Author: Uli Schlachter Date: Sun Aug 15 10:11:28 2021 +0200 test/hairline.c: Add copyright header Signed-off-by: Uli Schlachter test/hairline.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 0e468cf92142d3af6e80133bc91c0b33c9c75358 Author: Uli Schlachter Date: Sun Aug 15 10:10:31 2021 +0200 test/hairline.c: Use Unix line endings Signed-off-by: Uli Schlachter test/hairline.c | 350 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 175 insertions(+), 175 deletions(-) commit c773060195c5aee7d84208188bed5740a28747a8 Merge: 9f973bc43 ecec0419f Author: Adrian Johnson Date: Sun Aug 15 06:58:54 2021 +0000 Merge branch 'HairlineStroke' into 'master' Added hairline support to cairo See merge request cairo/cairo!21 commit ecec0419f8e178d71e449b52acfdfe9ac03aed37 Author: Rick Yorgason Date: Sun Aug 15 06:58:54 2021 +0000 Added hairline support to cairo src/cairo-backend-private.h | 2 + src/cairo-compositor.c | 66 ++++++-- src/cairo-default-context.c | 18 +++ src/cairo-gstate-private.h | 6 + src/cairo-gstate.c | 30 +++- src/cairo-script-surface.c | 22 +++ src/cairo-stroke-style.c | 4 + src/cairo-svg-surface.c | 24 ++- src/cairo-types-private.h | 2 + src/cairo.c | 61 +++++++ src/cairo.h | 6 + src/cairoint.h | 2 + src/win32/cairo-win32-printing-surface.c | 10 +- test/Makefile.sources | 1 + test/hairline.c | 175 +++++++++++++++++++++ test/meson.build | 1 + .../hairline-anisotropic-incorrect.image16.ref.png | Bin 0 -> 1773 bytes .../hairline-anisotropic-incorrect.pdf.ref.png | Bin 0 -> 1856 bytes .../hairline-anisotropic-incorrect.quartz.ref.png | Bin 0 -> 1987 bytes .../hairline-anisotropic-incorrect.ref.png | Bin 0 -> 1942 bytes ...line-anisotropic-incorrect.svg11.argb32.ref.png | Bin 0 -> 2033 bytes ...rline-anisotropic-incorrect.svg11.rgb24.ref.png | Bin 0 -> 2007 bytes ...rline-anisotropic-incorrect.xcb-window&.ref.png | Bin 0 -> 1864 bytes ...irline-anisotropic-incorrect.xcb-window.ref.png | Bin 0 -> 1864 bytes .../hairline-anisotropic-incorrect.xcb.ref.png | Bin 0 -> 1864 bytes ...rline-anisotropic-incorrect.xlib-window.ref.png | Bin 0 -> 1863 bytes .../hairline-anisotropic-incorrect.xlib.ref.png | Bin 0 -> 1863 bytes .../reference/hairline-anisotropic.image16.ref.png | Bin 0 -> 1814 bytes test/reference/hairline-anisotropic.pdf.ref.png | Bin 0 -> 2056 bytes test/reference/hairline-anisotropic.quartz.ref.png | Bin 0 -> 2081 bytes test/reference/hairline-anisotropic.ref.png | Bin 0 -> 2040 bytes .../hairline-anisotropic.xcb-window&.ref.png | Bin 0 -> 1981 bytes .../hairline-anisotropic.xcb-window.ref.png | Bin 0 -> 1981 bytes test/reference/hairline-anisotropic.xcb.ref.png | Bin 0 -> 1981 bytes .../hairline-anisotropic.xlib-window.ref.png | Bin 0 -> 1950 bytes test/reference/hairline-anisotropic.xlib.ref.png | Bin 0 -> 1950 bytes test/reference/hairline-big.image16.ref.png | Bin 0 -> 2047 bytes test/reference/hairline-big.pdf.ref.png | Bin 0 -> 2363 bytes test/reference/hairline-big.quartz.ref.png | Bin 0 -> 2356 bytes test/reference/hairline-big.ref.png | Bin 0 -> 2348 bytes test/reference/hairline-big.xcb-window&.ref.png | Bin 0 -> 2309 bytes test/reference/hairline-big.xcb-window.ref.png | Bin 0 -> 2309 bytes test/reference/hairline-big.xcb.ref.png | Bin 0 -> 2309 bytes test/reference/hairline-big.xlib-window.ref.png | Bin 0 -> 2287 bytes test/reference/hairline-big.xlib.ref.png | Bin 0 -> 2287 bytes test/reference/hairline-scaled.image16.ref.png | Bin 0 -> 1532 bytes test/reference/hairline-scaled.pdf.ref.png | Bin 0 -> 1747 bytes test/reference/hairline-scaled.quartz.ref.png | Bin 0 -> 1683 bytes test/reference/hairline-scaled.ref.png | Bin 0 -> 1720 bytes test/reference/hairline-scaled.svg11.ref.png | Bin 0 -> 1709 bytes test/reference/hairline-scaled.xcb-window&.ref.png | Bin 0 -> 1641 bytes test/reference/hairline-scaled.xcb-window.ref.png | Bin 0 -> 1641 bytes test/reference/hairline-scaled.xcb.ref.png | Bin 0 -> 1641 bytes test/reference/hairline-scaled.xlib-window.ref.png | Bin 0 -> 1597 bytes test/reference/hairline-scaled.xlib.ref.png | Bin 0 -> 1597 bytes test/reference/hairline.image16.ref.png | Bin 0 -> 884 bytes test/reference/hairline.pdf.ref.png | Bin 0 -> 1014 bytes test/reference/hairline.quartz.ref.png | Bin 0 -> 968 bytes test/reference/hairline.ref.png | Bin 0 -> 995 bytes test/reference/hairline.svg11.ref.png | Bin 0 -> 988 bytes test/reference/hairline.xcb-window&.ref.png | Bin 0 -> 950 bytes test/reference/hairline.xcb-window.ref.png | Bin 0 -> 950 bytes test/reference/hairline.xcb.ref.png | Bin 0 -> 950 bytes test/reference/hairline.xlib-window.ref.png | Bin 0 -> 943 bytes test/reference/hairline.xlib.ref.png | Bin 0 -> 943 bytes util/cairo-script/cairo-script-operators.c | 22 +++ 66 files changed, 427 insertions(+), 25 deletions(-) commit 9f973bc4337fcc88ca2afe9ec6aef9cbeeda13aa Merge: 112349719 61aa6dc0e Author: Tim-Philipp Müller Date: Sat Aug 14 22:41:45 2021 +0000 Merge branch 'meson-update-wrap-versions' into 'master' Meson: update wrap versions Closes #416 See merge request cairo/cairo!133 commit 61aa6dc0e1d8f348924c47db71e6cbbcd92c146f Author: Tim-Philipp Müller Date: Thu Feb 25 01:54:16 2021 +0000 ci: make sure existing subproject checkouts are in sync with wraps .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) commit 34038cc77382f71da2730f80160286d532d3581b Author: Tim-Philipp Müller Date: Thu Feb 25 01:45:26 2021 +0000 meson: subprojects: use upstream freetype meson port and use latest release Closes #416 subprojects/freetype2.wrap | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit e502f70399ff53e929eeb15469e5d512942f96a2 Author: Tim-Philipp Müller Date: Thu Feb 25 01:39:53 2021 +0000 meson: subprojects: update zlib wrap to latest revision 1.2.11-5 subprojects/zlib.wrap | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit b6025e96c6bb59999d060bde2881bbc93937fdf9 Author: Tim-Philipp Müller Date: Thu Feb 25 01:37:32 2021 +0000 meson: subprojects: update glib wrap to latest stable 2.66.7 subprojects/glib.wrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb5e816c31202a99c128af7bd4a9659fc547e734 Author: Tim-Philipp Müller Date: Thu Feb 25 01:36:00 2021 +0000 meson: subprojects: update expat wrap to latest version subprojects/expat.wrap | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 112349719b1fdcc846b7bfc979e56ec08c03c9b1 Merge: d0a2031c5 6c3b7a487 Author: Adrian Johnson Date: Sat Aug 14 21:35:07 2021 +0000 Merge branch 'ebassi/meson-gtk-doc' into 'master' meson: Build the API reference See merge request cairo/cairo!168 commit 6c3b7a487b82090b125614ea983e47d4d8c10537 Author: Emmanuele Bassi Date: Tue Apr 27 12:08:52 2021 +0100 meson: Build the API reference The Meson build system should build the API reference using gtk-doc, like the Autotools build does. The option is called `gtk_doc`, which matches the existing practices in various projects using Meson and gtk-doc. doc/public/meson.build | 157 ++++++++++++++++++++++++++++++++++++++++++++++ doc/public/version.xml.in | 1 + meson.build | 9 +++ meson_options.txt | 4 ++ 4 files changed, 171 insertions(+) commit d0a2031c5c8b85e0ea5481f8d4edf99deac3ae36 Merge: 48d606114 4e859ddb1 Author: Adrian Johnson Date: Sat Aug 14 12:08:32 2021 +0000 Merge branch 'fix-color-glyph-compositing' into 'master' Fix compositing non-color glyphs in one case See merge request cairo/cairo!224 commit 8c3c41ca737e35740cd2fd7ddf09533f0453dc91 Author: Adrian Johnson Date: Sat Aug 14 18:14:44 2021 +0930 Add cairo_user_font_face_get_render_color_glyph_func doc/public/cairo-sections.txt | 2 ++ src/cairo-user-font.c | 28 ++++++++++++++++++++++++++++ src/cairo.h | 9 ++++++--- 3 files changed, 36 insertions(+), 3 deletions(-) commit 48d606114905dba86d165fd6824f3f0ff73e5120 Merge: 87cf0fc28 ebac15cb0 Author: Adrian Johnson Date: Sat Aug 14 07:24:41 2021 +0000 Merge branch 'meson-warnings' into 'master' copy all autotools compiler warnings to meson build See merge request cairo/cairo!215 commit ebac15cb047bfc82d359a679d4bc53a37028ad6a Author: Adrian Johnson Date: Sat Aug 14 07:24:40 2021 +0000 copy all autotools compiler warnings to meson build meson-cc-tests/check-unused-result.c | 9 ++++++ meson.build | 55 ++++++++++++++++++++++++++++++++++-- 2 files changed, 62 insertions(+), 2 deletions(-) commit 87cf0fc28585fa4476a7f9097667c5ebc24c383c Merge: 773236010 1e446cb31 Author: Adrian Johnson Date: Sat Aug 14 07:06:35 2021 +0000 Merge branch 'issue-404' into 'master' Fix color fonts when antialias == SUBPIXEL or NONE Closes #404 See merge request cairo/cairo!229 commit 1e446cb31e19c46118df7c2fdf96359a4f52ad0e Author: Adrian Johnson Date: Sat Aug 14 07:06:34 2021 +0000 Fix color fonts when antialias == SUBPIXEL or NONE src/cairo-ft-font.c | 147 ++++++++++++++++++++++++++++++---------------------- src/cairo-surface.c | 1 - 2 files changed, 86 insertions(+), 62 deletions(-) commit 773236010f45530855c21ae16a5f69e6d7a2d43c Merge: 6ea9ec75e e2c002c57 Author: Adrian Johnson Date: Sat Aug 14 06:25:15 2021 +0000 Merge branch 'endian' into 'master' meson: add BIGENDIAN See merge request cairo/cairo!214 commit 6ea9ec75eda7461a51429ae8e40e365bdd2dbd6f Merge: bb10f0698 62cc53f9b Author: Adrian Johnson Date: Sat Aug 14 06:06:20 2021 +0000 Merge branch 'issue-389' into 'master' Add color user-font support See merge request cairo/cairo!223 commit 62cc53f9b806eedbc361e807fb5f523bf953c52a Author: Adrian Johnson Date: Sat Aug 14 06:06:19 2021 +0000 Add color user-font support Adds new API cairo_user_font_face_set_render_color_glyph_func() to set a color glyph renderer. src/cairo-scaled-font-private.h | 2 + src/cairo-surface.c | 10 +- src/cairo-user-font.c | 214 ++++++++++++++---- src/cairo.h | 31 ++- src/cairoint.h | 1 + test/Makefile.sources | 1 + test/meson.build | 1 + test/reference/user-font-color.image16.ref.png | Bin 0 -> 3496 bytes test/reference/user-font-color.pdf.ref.png | Bin 0 -> 4156 bytes test/reference/user-font-color.ps.ref.png | Bin 0 -> 3924 bytes test/reference/user-font-color.quartz.ref.png | Bin 0 -> 4061 bytes test/reference/user-font-color.recording.xfail.png | Bin 0 -> 3040 bytes test/reference/user-font-color.ref.png | Bin 0 -> 4155 bytes test/reference/user-font-color.script.xfail.png | Bin 0 -> 1964 bytes test/reference/user-font-color.svg.ref.png | Bin 0 -> 4152 bytes test/reference/user-font-color.svg.rgb24.xfail.png | Bin 0 -> 3040 bytes test/user-font-color.c | 251 +++++++++++++++++++++ 17 files changed, 459 insertions(+), 52 deletions(-) commit bb10f069853f1802a5b486182e900ad61bdb2973 Merge: 109113425 76331f654 Author: Adrian Johnson Date: Sat Aug 7 07:23:55 2021 +0000 Merge branch 'mingw-warnings' into 'master' Fix some mingw warnings and correct the value of R_OK See merge request cairo/cairo!231 commit 76331f654eef10d3feed2fc335d037416f5b609f Author: Adrian Johnson Date: Sat Aug 7 15:44:21 2021 +0930 Fix some mingw warnings and correct the value of R_OK src/cairo-compiler-private.h | 4 +++- src/cairo-ps-surface.c | 6 +++++- src/win32/cairo-win32-display-surface.c | 8 +++++++- 3 files changed, 15 insertions(+), 3 deletions(-) commit 10911342584fce363579ecd67faccd169150b7d7 Merge: ed017e10f ada76e80d Author: Adrian Johnson Date: Sat Aug 7 05:38:04 2021 +0000 Merge branch 'MMAP-bug' into 'master' Fixed compile-time error on platforms without MMAP. See merge request cairo/cairo!225 commit ed017e10f9c21b69ede1346e97f2ff0333d5465e Merge: 69fdca480 3ee18ffc2 Author: Adrian Johnson Date: Sat Aug 7 05:37:30 2021 +0000 Merge branch 'STRNDUP-bug' into 'master' Added extra check for HAVE_STRNDUP in Win32 Mingw Meson build See merge request cairo/cairo!226 commit 2fb156bdc0cc28227df80e9d59a58547283b50e1 Author: Manuel Stoeckl Date: Fri Aug 6 18:35:01 2021 -0400 Read/write 16-bpc PNG data in native endian The png_set_swap function does not affect 8-bpc data. Signed-off-by: Manuel Stoeckl src/cairo-png.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 69fdca480cb661f61bbaf64bcb91ca9ee4e188d7 Merge: 4dd48f097 67c91db45 Author: Adrian Johnson Date: Wed Aug 4 11:41:24 2021 +0000 Merge branch 'win32-printing-fix' into 'master' Check correctly for surface_pattern being a recording in... See merge request cairo/cairo!228 commit 67c91db4550f26158776317af27d6a0106fa8f31 Author: Jonathan Kew Date: Wed Aug 4 11:58:49 2021 +0100 Check correctly for surface_pattern being a snapshot/recording in _cairo_win32_printing_surface_paint_pattern. (Corrected patch as proposed by Uli Schlachter.) Fixes poor-quality print output on Windows reported in https://bugzilla.mozilla.org/show_bug.cgi?id=1721127. src/win32/cairo-win32-printing-surface.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit 4e859ddb19c5aa3a71986ab891d40539320a142f Author: Matthias Clasen Date: Sun Aug 1 07:36:06 2021 -0400 Fix compositing non-color glyphs in one case The intention here is: "if show_text_glyphs is unsupported, try show_gyphs". We need to make sure to set the status to unsupported before checking it, otherwise we end up looking at the status that was set by composite_color_glyphs if show_text_glyphs is NULL. This showed up in https://github.com/harfbuzz/harfbuzz/issues/2675 src/cairo-surface.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ada76e80db4c24afc9b777db1c872ad07804b673 Author: Rick Yorgason Date: Sun Aug 1 17:34:14 2021 -0700 Fixed compile-time error on platforms without MMAP. test/pdf-tagged-text.c | 2 ++ 1 file changed, 2 insertions(+) commit 3ee18ffc28be480b1c8bfb072f73a991734b3c25 Author: Rick Yorgason Date: Sun Aug 1 17:30:06 2021 -0700 Added extra check for HAVE_STRNDUP in Win32 Mingw Meson build Mingw on Windows defines the strndup function, but it's not actually usable because string.h doesn't exist. See details on the Meson bug here: https://github.com/mesonbuild/meson/issues/3672 Note that although Meson marked this bug as "fixed", it's only fixed in the case where you're using `prefix : '#include '`. meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4dd48f0979f693dfc515eb3eff266ec6429f8b33 Merge: 6a916648d ab2c5ee21 Author: Heiko Lewin Date: Sun Aug 1 11:16:04 2021 +0000 Merge branch 'fix_infinite_loop' into 'master' _arc_max_angle_for_tolerance_normalized: fix infinite loop See merge request cairo/cairo!155 commit ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0 Author: Heiko Lewin Date: Sun Aug 1 11:16:03 2021 +0000 _arc_max_angle_for_tolerance_normalized: fix infinite loop src/cairo-arc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 6a916648d5dde42236b8ee55b1a40e78ef732b27 Merge: d88dd1794 7176cc8f0 Author: Heiko Lewin Date: Sun Aug 1 11:10:40 2021 +0000 Merge branch 'fix_clip_leak' into 'master' Fix clip leak See merge request cairo/cairo!158 commit 7176cc8f0f8600185a6480d3117892742007e368 Author: Heiko Lewin Date: Sun Aug 1 11:10:40 2021 +0000 Fix clip leak src/cairo-composite-rectangles.c | 83 ++++++++++++++++++++++++++++++++-------- 1 file changed, 66 insertions(+), 17 deletions(-) commit d88dd1794e17c1ef9c63dd8c1adf54c7f7c89811 Merge: 814162d97 7c6f2d4f2 Author: Uli Schlachter Date: Sat Jul 31 05:58:33 2021 +0000 Merge branch 'color-font-test' into 'master' Add ft-color-font test See merge request cairo/cairo!221 commit 7c6f2d4f24f89ea6a46fb54e838f986c0aeeccdf Author: Adrian Johnson Date: Fri Jul 30 10:36:08 2021 +0930 Add ft-color-font test .gitlab-ci.yml | 3 +- test/Makefile.sources | 1 + test/ft-color-font.c | 108 ++++++++++++++++++++++++++ test/meson.build | 1 + test/reference/ft-color-font.image16.ref.png | Bin 0 -> 1151 bytes test/reference/ft-color-font.ref.png | Bin 0 -> 1578 bytes test/reference/ft-color-font.script.xfail.png | Bin 0 -> 1976 bytes 7 files changed, 112 insertions(+), 1 deletion(-) commit e2c002c570c42cb883e41f0dfabfdb0651edbe9b Author: Adrian Johnson Date: Sun Jul 25 11:59:40 2021 +0930 meson: add endian check Fixes #464 meson.build | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 814162d9769fc3b63946f8a1a0ab9ac2ffdcf1e8 Merge: 47e6764de ca1fb44dd Author: Adrian Johnson Date: Thu Jul 29 20:29:10 2021 +0000 Merge branch 'pdf-links-fixes' into 'master' pdf links: fix forward references to dest names with 'internal' flag See merge request cairo/cairo!220 commit ca1fb44dd367eaa1a544a2655425b0313c758ca2 Author: Adrian Johnson Date: Wed Jul 28 07:18:25 2021 +0930 pdf links: fix forward references to dest names with 'internal' flag src/cairo-pdf-interchange.c | 119 ++++++++++++++++++++++++---------------- src/cairo-pdf-surface-private.h | 1 + src/cairo-pdf-surface.c | 6 ++ test/pdf-tagged-text.c | 11 ++-- 4 files changed, 84 insertions(+), 53 deletions(-) commit 47e6764de620f24a7b0c36f53c1fb8a3b5de8a6c Merge: 4e3f6bf0c 24616585e Author: Adrian Johnson Date: Wed Jul 28 21:28:28 2021 +0000 Merge branch 'tag-error' into 'master' Print tag error details when CAIRO_DEBUG_TAG is defined See merge request cairo/cairo!218 commit 24616585ecb83ead34b4662e8a07957da5299c28 Author: Adrian Johnson Date: Mon Jul 26 18:45:31 2021 +0930 Print tag error details when CAIRO_DEBUG_TAG is defined Add a _cairo_tag_error(fmt, ...) function that is used liked _cairo_error() but allows an error message to be specified. When CAIRO_DEBUG_TAG is defined the error is printed. src/cairo-pdf-interchange.c | 6 +- src/cairo-tag-attributes.c | 161 ++++++++++++++++++++++-------------------- src/cairo-tag-stack-private.h | 3 + src/cairo-tag-stack.c | 22 +++++- 4 files changed, 110 insertions(+), 82 deletions(-) commit 4e3f6bf0c2eb4ff5065bb18fb846019d4fef597f Merge: d60e3f350 fb6f3eb32 Author: Adrian Johnson Date: Wed Jul 28 20:27:45 2021 +0000 Merge branch 'pdf-object-streams' into 'master' pdf: use cross-reference stream for PDF >= 1.5 See merge request cairo/cairo!197 commit fb6f3eb32efd372e84460720e22970b7fef571fe Author: Adrian Johnson Date: Wed Jul 28 06:18:01 2021 +0930 pdf-tagged-text: generate both 1.4 and 1.5 PDFs test/pdf-tagged-text.c | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) commit d60e3f3501f39b0487179601fa9dc4b703a49c93 Merge: 220222c5f 6fbfc9d92 Author: Adrian Johnson Date: Tue Jul 27 20:13:23 2021 +0000 Merge branch 'issue-426' into 'master' pdf: use floating point widths when emitting fonts Closes #426 See merge request cairo/cairo!213 commit 6fbfc9d927fb9f64527f568050aa9e91485290e0 Author: Adrian Johnson Date: Tue Jul 27 20:13:23 2021 +0000 pdf: use floating point widths when emitting fonts src/cairo-pdf-surface.c | 24 ++-- test/Makefile.sources | 1 + test/meson.build | 1 + test/pdf-operators-text.c | 157 +++++++++++++++++++++ test/reference/pdf-operators-text.image16.ref.png | Bin 0 -> 4649 bytes test/reference/pdf-operators-text.pdf.ref.png | Bin 0 -> 4322 bytes test/reference/pdf-operators-text.ps.ref.png | Bin 0 -> 4231 bytes test/reference/pdf-operators-text.quartz.xfail.png | Bin 0 -> 8467 bytes test/reference/pdf-operators-text.ref.png | Bin 0 -> 4659 bytes test/reference/pdf-operators-text.script.xfail.png | Bin 0 -> 4245 bytes test/reference/pdf-operators-text.svg.ref.png | Bin 0 -> 4637 bytes test/reference/pdf-operators-text.xcb.ref.png | Bin 0 -> 4714 bytes test/reference/pdf-operators-text.xlib.ref.png | Bin 0 -> 4714 bytes 13 files changed, 171 insertions(+), 12 deletions(-) commit 220222c5ff5efcabd13c63ec288ff38111a1e7b7 Merge: d6fefd315 62681fe05 Author: Uli Schlachter Date: Tue Jul 27 15:53:03 2021 +0000 Merge branch 'issue-263' into 'master' Win 64-bit fix pointer to long cast size mismatch Closes #263 See merge request cairo/cairo!216 commit 6b8d8712fbf62d54e79ec4788e1cea3e5ffa53e9 Author: Adrian Johnson Date: Mon Jul 26 18:33:34 2021 +0930 pdf-tagged-text test: disable object stream compression to allow the test to find the strings it is looking for. test/pdf-tagged-text.c | 3 +++ 1 file changed, 3 insertions(+) commit 90193cc3a2259356ac068f2491f469e10abed141 Author: Adrian Johnson Date: Sun Jul 18 07:54:30 2021 +0930 pdf: convert all document interchange features to use object streams src/cairo-pdf-interchange.c | 319 +++++++++++++++++++++++++------------------- src/cairo-pdf-surface.c | 3 +- 2 files changed, 186 insertions(+), 136 deletions(-) commit bd514f6b08c1b31a75948fd99c147319e5aa649f Author: Adrian Johnson Date: Sun Jul 18 07:16:22 2021 +0930 pdf: add support for object streams for PDF >= 1.5 This allows all objects that were previously emitted uncompressed to be compressed into a an object stream. Currently only /Page, /Pages, and /Catalog have been converted to use object streams. src/cairo-array-private.h | 3 + src/cairo-array.c | 6 + src/cairo-pdf-surface-private.h | 15 ++ src/cairo-pdf-surface.c | 388 +++++++++++++++++++++++++++++++++------- 4 files changed, 344 insertions(+), 68 deletions(-) commit 0f382eb0875f2102ba26e30c6ea1dfbaf1abff96 Author: Adrian Johnson Date: Fri Jul 16 19:18:02 2021 +0930 pdf: use cross-reference stream for PDF >= 1.5 This reduces the output size and is required for object streams. src/cairo-pdf-surface-private.h | 2 +- src/cairo-pdf-surface.c | 196 +++++++++++++++++++++++++++++++++++----- 2 files changed, 174 insertions(+), 24 deletions(-) commit d6fefd3156ff21fe679e293669e45fb21b75e75c Merge: 6872490e7 d1a8f2009 Author: Adrian Johnson Date: Mon Jul 26 08:38:49 2021 +0000 Merge branch 'fix-wording' into 'master' INSTALL.meson: correct the wording See merge request cairo/cairo!217 commit d1a8f20096fb7ed949bee22af44054d12328a18e Author: Adrian Johnson Date: Mon Jul 26 17:17:30 2021 +0930 INSTALL.meson: correct the wording INSTALL.meson | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6872490e77fb2d0cc7d7bb7b43f1da8464da6344 Merge: 908b243ab 47c4dc4fc Author: Adrian Johnson Date: Sun Jul 25 11:33:43 2021 +0000 Merge branch 'meson-install' into 'master' Add meson install instructions See merge request cairo/cairo!206 commit 47c4dc4fcffdc7faa3acaed823629bcc40a49be3 Author: Adrian Johnson Date: Sun Jul 25 11:33:42 2021 +0000 Add meson install instructions INSTALL.meson | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit 908b243ab8e31db4ec18e40afc4aae525a8c3a14 Merge: 099d71fb9 4c6b604bd Author: Adrian Johnson Date: Sun Jul 25 03:21:03 2021 +0000 Merge branch 'svg-create-for-stream' into 'master' svg: Fix create-for-stream test case See merge request cairo/cairo!212 commit 62681fe0523ae96a29e2ff9c080a4c0f4ad40d4c Author: Adrian Johnson Date: Sun Jul 25 06:24:34 2021 +0930 Change FNV hash to 64-bit Most builds are 64-bit where the uintptr_t type of the hash value and the font face pointer that is being hashed are 64-bit. src/cairo-scaled-font.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 8d14a20a0009a8e832cb87fd9cf829bd399aa692 Author: Adrian Johnson Date: Sun Jul 25 06:22:24 2021 +0930 Fix some win32 compile warnings perf/cairo-perf-report.c | 5 +++++ src/cairo-compiler-private.h | 1 + src/cairo-ft-font.c | 2 +- src/cairo-misc.c | 3 +++ src/cairo-svg-surface.c | 1 + 5 files changed, 11 insertions(+), 1 deletion(-) commit 9fbf42754899898934bc8bf4f8eeacba37656fdc Author: Adrian Johnson Date: Sun Jul 25 06:18:37 2021 +0930 Use uintptr_t for all casts between pointer and integer On 64-bit windows, long is 32-bit. When compiling there are a large number of warnings about mismatched sizes when casting long to/from a pointer. Use the (u)intptr_t type for any integer that will have a pointer stored in it. Use a (u)intptr_t cast when integers are stored in pointers to silence warnings. Fixes #263 src/cairo-cache-private.h | 2 +- src/cairo-cache.c | 8 ++++---- src/cairo-cogl-gradient.c | 6 +++--- src/cairo-cogl-surface.c | 8 ++++---- src/cairo-ft-font.c | 6 +++--- src/cairo-gl-gradient.c | 6 +++--- src/cairo-image-compositor.c | 4 ++-- src/cairo-mempool.c | 6 +++--- src/cairo-path-fixed-private.h | 2 +- src/cairo-path-fixed.c | 4 ++-- src/cairo-pattern-private.h | 10 +++++----- src/cairo-pattern.c | 32 ++++++++++++++++---------------- src/cairo-scaled-font-subsets.c | 4 ++-- src/cairo-scaled-font.c | 10 +++++----- src/cairo-script-surface.c | 10 +++++----- src/cairo-toy-font-face.c | 6 +++--- src/cairo-types-private.h | 2 +- src/cairo-vg-surface.c | 6 +++--- src/cairoint.h | 6 +++--- src/drm/cairo-drm-intel.c | 2 +- src/win32/cairo-win32-font.c | 2 +- util/cairo-script/cairo-script-private.h | 2 +- util/cairo-trace/lookup-symbol.c | 2 +- util/cairo-trace/trace.c | 2 +- 24 files changed, 74 insertions(+), 74 deletions(-) commit 099d71fb9f267153da8b45adc288f9715fbb4611 Merge: 994eccefc f7c7bcb60 Author: Uli Schlachter Date: Sat Jul 24 12:58:17 2021 +0000 Merge branch 'issue-336' into 'master' tags: allow links to page numbers not yet created Closes #336 See merge request cairo/cairo!211 commit 4c6b604bd512c2619c69c7f2afb9481ab756bf85 Author: Uli Schlachter Date: Sat Jul 24 14:42:26 2021 +0200 svg: Fix create-for-stream test case Commit 2fbd53 added another test to create-for-stream that failed for cairo-pdf. Manual testing shows that this test also fails for cairo-svg. However, this was not noticed because even before this addition to the test, create-for-stream already failed for cairo-svg. Since the introduction on CI was done based on "let's ignore all current failures", this hid the error. This commit applies the trivial fix for cairo-svg to make this test pass. It is basically the same error that cairo-pdf had. Additionally, this removes the hack to ignore create-for-stream failures in CI since it is now no longer necessary. Thanks to Knut Peterson for reporting this [0]. [0]: https://lists.cairographics.org/archives/cairo/2021-July/029291.html Signed-off-by: Uli Schlachter .gitlab-ci.yml | 1 - src/cairo-svg-surface.c | 2 +- test/cairo-test-runner.c | 12 ------------ 3 files changed, 1 insertion(+), 14 deletions(-) commit f7c7bcb6030aa36677adcc4887c8f9f8964431d6 Author: Adrian Johnson Date: Sat Jul 24 21:26:22 2021 +0930 tags: allow links to page numbers not yet created Previously, forward references were required to use named destinations. This patch is based on the patch in #336 by Guillaume Ayoub that converted all links to indirect objects written at the end of the document. I have reworked the patch so that only forward references to future page numbers are written as indirect objects. Backward references and named destinations remain as they are. This is to minimize the number of objects written to the PDF file. Fixes #336 src/cairo-pdf-interchange.c | 93 ++++++++++++++++++++++++++++++++++------- src/cairo-pdf-surface-private.h | 8 ++++ src/cairo-pdf-surface.c | 2 + test/pdf-tagged-text.c | 23 +++++++++- 4 files changed, 109 insertions(+), 17 deletions(-) commit 994eccefc0a778d291a8dbbb4143280b38a7ad80 Merge: d12e55672 2d488b359 Author: Adrian Johnson Date: Sat Jul 24 08:19:16 2021 +0000 Merge branch 'recording-playback-nothing-to-do' into 'master' Don't assert on NOTHING_TO_DO during recording replay. See merge request cairo/cairo!195 commit d12e55672caec22a6b93468914c82f1a90293db7 Merge: b408352d4 e689e6700 Author: Adrian Johnson Date: Sat Jul 24 08:08:44 2021 +0000 Merge branch 'pdf-stdio-write-errors' into 'master' pdf: Properly pass on stdio write errors See merge request cairo/cairo!210 commit e689e670049b26be8c6bff69f3de372bddb8d856 Author: Uli Schlachter Date: Fri Jul 23 17:32:39 2021 +0200 Fix build on windows Signed-off-by: Uli Schlachter test/create-for-stream.c | 5 +++++ 1 file changed, 5 insertions(+) commit 2fbd53a6b33a90a08ef6eda9e5f88e8fb3b97c1e Author: Uli Schlachter Date: Fri Jul 23 17:22:16 2021 +0200 pdf: Properly pass on stdio write errors cairo-pdf was silently ignoring write errors in _cairo_pdf_surface_finish(). Any write errors that happened here ended up setting a "status" variable, but the value in this variable was then unused. This commit fixes this bug by passing this error on to the caller. Additionally, this also adds a test case for this behaviour based on writing to /dev/full. This file is non-standard and thus the test first checks that this file exists and is writable before trying to write to it. This bug was found based on a report from Knut Petersen [0]. [0]: https://lists.cairographics.org/archives/cairo/2021-July/029281.html Signed-off-by: Uli Schlachter src/cairo-pdf-interchange.c | 4 +--- src/cairo-pdf-surface-private.h | 2 +- src/cairo-pdf-surface.c | 4 +++- test/create-for-stream.c | 21 ++++++++++++++++++++- 4 files changed, 25 insertions(+), 6 deletions(-) commit 2d488b35966af90474eed8fb2f8f1255cb7a1f88 Author: Jonathan Kew Date: Thu Jul 8 15:33:50 2021 +0100 Don't assert on NOTHING_TO_DO during recording replay. src/cairo-recording-surface.c | 4 ++++ 1 file changed, 4 insertions(+) commit b408352d450bb8c1b1cc17b14e0d605dc40daaed Merge: 0d3090ad8 bd54a1bf9 Author: Uli Schlachter Date: Fri Jul 23 12:11:30 2021 +0000 Merge branch 'issue-381' into 'master' Always define _cairo_utf8_to_utf16 on Windows Closes #381 See merge request cairo/cairo!209 commit 0d3090ad8412907d380cca3b76345c15979eb2d9 Merge: bfedda6a1 0f18a873e Author: Uli Schlachter Date: Fri Jul 23 12:11:04 2021 +0000 Merge branch 'issue-411' into 'master' PS: ensure setup DSC comments are in BeginSetup section Closes #411 See merge request cairo/cairo!208 commit bfedda6a187a0d6f8e1e98bda9d74b220b0dea59 Merge: 014707b7b c91ae5c5a Author: Uli Schlachter Date: Fri Jul 23 12:09:51 2021 +0000 Merge branch 'issue-264' into 'master' Patches from #264 Closes #264 See merge request cairo/cairo!207 commit 014707b7bc05b8766268316351c89b330058bf1c Merge: e5e63a046 6f64682ca Author: Adrian Johnson Date: Fri Jul 23 09:51:24 2021 +0000 Merge branch 'parse-float-errors' into 'master' Handle _cairo_strtod() failures in parse_float() See merge request cairo/cairo!205 commit bd54a1bf9805ebb7905b857d7234271ae496f904 Author: Peter Wang Date: Mon Oct 21 12:22:44 2019 +1100 Always define _cairo_utf8_to_utf16 on Windows _cairo_utf8_to_utf16 is used by _cairo_fopen on Windows so must be defined even if Win32 fonts or other features are disabled. Fixes #381 src/cairoint.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f18a873ef21107a3c5c5bea5ea57d544da74d5a Author: Adrian Johnson Date: Fri Jul 23 19:10:55 2021 +0930 PS: ensure setup DSC comments are in BeginSetup section Fixes #411 src/cairo-ps-surface.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit c91ae5c5a06d1b0f558f9a83637ba5df99cd2af5 Author: Bryce Harrington Date: Mon May 7 17:11:24 2018 -0700 boilerplate: Use _cairo_malloc instead of malloc This changes most instances of malloc() calls to use Cairo's safer _cairo_malloc(). The malloc() call in the implementation of boilerplate's xmalloc() is not changed since it already includes a size=0 check. Signed-off-by: Bryce Harrington boilerplate/cairo-boilerplate-cogl.c | 5 +++-- boilerplate/cairo-boilerplate-vg.c | 3 ++- boilerplate/cairo-boilerplate-win32-printing.c | 3 ++- boilerplate/cairo-boilerplate-xcb.c | 3 ++- boilerplate/cairo-boilerplate-xlib.c | 3 ++- boilerplate/cairo-boilerplate.c | 7 ++++--- 6 files changed, 15 insertions(+), 9 deletions(-) commit ae04679a08f39597907c28c317062b1f22ecf8f8 Author: Adrian Johnson Date: Fri Jul 23 18:32:44 2021 +0930 truetype: check cmap size before allocating memory Fixes #264 src/cairo-truetype-subset.c | 4 ++++ 1 file changed, 4 insertions(+) commit e5e63a04623db06a3b96883ea2f8849457ad35f5 Merge: ab82549f0 caf422b00 Author: Uli Schlachter Date: Thu Jul 22 14:21:56 2021 +0000 Merge branch 'issue-399' into 'master' cff: use correct size cast when decoding bytes to a signed int Closes #399 See merge request cairo/cairo!204 commit 6f64682ca0b61d9c40c2fb4420b8b69c6891366c Author: Uli Schlachter Date: Wed Jul 21 17:16:00 2021 +0200 Handle _cairo_strtod() failures in parse_float() When strtod cannot do anything, it returns zero and sets the end pointer to the beginning of the string. This commit changes the code in parse_float() to treat this case as an error. Without the fix from commit b7d67433b7c0, this commit turns the error from an endless loop into a parse error, which is a lot better error behaviour. Signed-off-by: Uli Schlachter src/cairo-tag-attributes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit caf422b00bf29e3518f8dce2f57edda0f90287bd Author: Adrian Johnson Date: Wed Jul 21 22:21:37 2021 +0930 cff: use correct size cast when decoding bytes to a signed int Fixes #399 src/cairo-cff-subset.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ab82549f0344760988844a670133f1ad789b8a89 Merge: 82f5570ad a8238adc5 Author: Adrian Johnson Date: Tue Jul 20 23:03:37 2021 +0000 Merge branch 'strtod-fix' into 'master' Ensure _cairo_strtod accepts a leading sign character Closes #499 See merge request cairo/cairo!203 commit 82f5570ad549b458973f410f3bf21299c2ccb60c Merge: 06f405c77 b6c89810f Author: Adrian Johnson Date: Tue Jul 20 22:41:43 2021 +0000 Merge branch 'issue-413' into 'master' cff: Check subroutine number is valid before using as an array index Closes #413 See merge request cairo/cairo!202 commit a8238adc5a1b9a38ce93d37df1a9f488a8303893 Author: Jonathan Kew Date: Tue Jul 20 17:45:21 2021 +0100 Add link with a negative coordinate to testcase. test/pdf-tagged-text.c | 4 ++++ 1 file changed, 4 insertions(+) commit b7d67433b7c03e8953c792e1f82e5b74ffe935af Author: Jonathan Kew Date: Tue Jul 20 17:46:01 2021 +0100 Accept a leading sign character in _cairo_strtod. src/cairo-misc.c | 2 ++ 1 file changed, 2 insertions(+) commit b6c89810f20599dcd9fce2505a9c2f22a95761a7 Author: Adrian Johnson Date: Tue Jul 20 21:44:24 2021 +0930 cff: Check subroutine number is valid before using as an array index Fixes #413 src/cairo-cff-subset.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 06f405c775f46e29a7cc89b03fba9ab71a3f2623 Merge: 08f2fb6b2 fc1d6caa8 Author: Adrian Johnson Date: Tue Jul 20 12:00:05 2021 +0000 Merge branch 'cff-subset-leak' into 'master' Fix memory leak in cairo_cff_font_read_cid_fontdict See merge request cairo/cairo!192 commit 08f2fb6b2562101c420273c567c21aab31767980 Merge: 7c803ceb1 a623906bf Author: Adrian Johnson Date: Tue Jul 20 11:35:02 2021 +0000 Merge branch 'type1-subset-fixes' into 'master' Fix some type1-subset array indexing bugs Closes #13 and #452 See merge request cairo/cairo!201 commit 7c803ceb19cad0759c42d63f1b60103ae9432102 Merge: 99d533791 84192695f Author: Adrian Johnson Date: Tue Jul 20 11:14:09 2021 +0000 Merge branch 'recording-surface-tags' into 'master' Add an extra PDF link test to pdf-tagged-text testcase See merge request cairo/cairo!194 commit a623906bf9a2d2fc8dc14ebdd76a8441d5accd96 Author: Adrian Johnson Date: Tue Jul 20 08:22:55 2021 +0930 Fix some type1-subset array indexing bugs Fixes #13 Fixes #452 src/cairo-type1-subset.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 84192695f8758bc35b0ee6b2f675dd201b5bd99b Author: Jonathan Kew Date: Mon Jul 19 12:30:17 2021 +0100 Fix use-after-free in pdf-features testcase. test/pdf-features.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 20ef4ec460b9631c4b094f3ac0b6a78752c22c0b Author: Jonathan Kew Date: Mon Jul 19 12:28:14 2021 +0100 Add an example of a link within an empty clip to pdf-tagged-text testcase. test/pdf-tagged-text.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 99d5337918defcea4ef0e72c4c345cb8ec973f58 Merge: 2ffc20948 cb0bfefba Author: Adrian Johnson Date: Sun Jul 18 11:40:27 2021 +0000 Merge branch 'ps-docs' into 'master' Update DSC documention Closes #380 See merge request cairo/cairo!200 commit cb0bfefba2a0fad8c138370590415e6a4df3c371 Author: Adrian Johnson Date: Sun Jul 18 09:02:33 2021 +0930 Update DSC documention Fixes #380 src/cairo-ps-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ffc209485218a9eac6eb20d4351d0fa5df29c48 Merge: ff2a95d6e e73b4c799 Author: Adrian Johnson Date: Sun Jul 18 09:33:05 2021 +0000 Merge branch 'dont-drop-tags' into 'master' Remove all gstate from _cairo_surface_tag See merge request cairo/cairo!196 commit e73b4c799e7bda112a5c9ee386b7e03cf0c0d21c Author: Adrian Johnson Date: Fri Jul 16 13:06:02 2021 +0930 Fix PS test crash When the tests run ghostscipt on ps2 files it crashes with: Error: /undefined in .setlanguagelevel Operand stack: 2 Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- Dictionary stack: --dict:732/1123(ro)(G)-- --dict:0/20(G)-- --dict:75/200(L)-- Current allocation mode is local GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1 The problem is the "-c 2 .setlanguagelevel -f" on the gs command line to set ghostscript to language level 2. I'm not sure why this no longer works. .setlanguagelevel is not mentioned any where in the gs custom operators listed in https://www.ghostscript.com/doc/current/Language.htm I assume this operator was meant for ghostscript internal use and is no longer exposed in recent versions. Remove it from the test. boilerplate/cairo-boilerplate-ps.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 26043a2db122dc149818ab2b1a7cacf33790b36c Author: Adrian Johnson Date: Sat Jul 17 05:45:49 2021 +0930 Fix crash src/cairo-recording-surface.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 81d7b2e3a487bdaad4d8400890098cb75f4d845b Author: Adrian Johnson Date: Fri Jul 16 09:50:35 2021 +0930 test: add URL and "rect" attribute to pdf-tagged-text test/pdf-tagged-text.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) commit 1c64d2635bf61be01815148d3879428b90105abd Author: Adrian Johnson Date: Fri Jul 16 09:42:56 2021 +0930 Remove all gstate from _cairo_surface_tag The gstate is not required and was causing some tag operations to be ignored. src/cairo-analysis-surface.c | 14 +----- src/cairo-gstate.c | 43 +--------------- src/cairo-paginated-surface.c | 12 +---- src/cairo-pdf-surface.c | 7 +-- src/cairo-recording-surface-private.h | 4 -- src/cairo-recording-surface.c | 92 ++++++----------------------------- src/cairo-surface-backend-private.h | 7 +-- src/cairo-surface-wrapper-private.h | 7 +-- src/cairo-surface-wrapper.c | 38 +-------------- src/cairo-surface.c | 17 +------ src/cairoint.h | 7 +-- 11 files changed, 29 insertions(+), 219 deletions(-) commit ff2a95d6e5e12c5930d451401024f8521446c997 Merge: a6f7c20be 30a0ae56d Author: Adrian Johnson Date: Sun Jul 18 07:31:16 2021 +0000 Merge branch 'isxdigit' into 'master' Create cairo version of isxdigit() Closes #335 See merge request cairo/cairo!199 commit 30a0ae56d8eaf7735d6f4a8a889e9c54bc0debc1 Author: Adrian Johnson Date: Sun Jul 18 08:42:16 2021 +0930 Create cairo version of isxdigit() Fixes #335 src/cairo-type1-subset.c | 2 +- src/cairoint.h | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) commit a6f7c20befb1708eca64288691fde3084f5a8b43 Merge: 0eff09a1e b2a152511 Author: Uli Schlachter Date: Sun Jul 18 05:34:40 2021 +0000 Merge branch 'windows-ci-fix' into 'master' ci: add fallback_source_uri to work around ssl certificate issues on windows runners See merge request cairo/cairo!198 commit b2a1525113c5e49310cf3021ababc83bd5fa781c Author: Tim-Philipp Müller Date: Sat Jul 17 23:58:44 2021 +0100 ci: add fallback_source_uri to work around ssl certificate issues on windows runners Has to be fixed properly, possibly by regenerating the image, but for now this might do the job. subprojects/zlib.wrap | 1 + 1 file changed, 1 insertion(+) commit 0eff09a1e3a7b035d01c739320bc87ae1077b57e Merge: 716d144cb 13660ff92 Author: Emmanuele Bassi Date: Thu Jul 1 12:01:14 2021 +0000 Merge branch 'fix-fontconfig-subproject' into 'master' Fix fontconfig subproject See merge request cairo/cairo!193 commit 13660ff9252a0e43e15eac0c6e06c3b4d2807469 Author: Matthias Clasen Date: Thu Jul 1 06:55:59 2021 -0400 Fix fontconfig subproject fontconfig has changed its default git branch from master to main, and deleted the master branch. This breaks GTK ci on MacOs, where we use build cairo and use its fontconfig subproject. subprojects/fontconfig.wrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc1d6caa8c1a161f201ea6dd76eae7ab797713f2 Author: Uli Schlachter Date: Sat Jun 26 14:03:34 2021 +0200 Fix memory leak in cairo_cff_font_read_cid_fontdict The function cairo_cff_font_read_cid_fontdict() has a local variable "cairo_array_t index". This array is first filled with data from the font with cff_index_read(). Later in this function, each resulting entry is given to cff_dict_read(). Nothing else is done with the array. Thus, nothing can keep a reference to "index" and thus this array has to be finalised at the end of the function to avoid a memory leak. This commit does that by falling through to the call to cff_index_fini() that is already there in the error case. This function checks for each element if its ->is_copy is true and then frees the data. However, cff_index_read() only creates elements with ->is_copy = FALSE, thus this does not do anything. At the end, this calls _cairo_array_fini() which frees the array's memory. Fixes the following memory leak according to valgrind: 24 bytes in 1 blocks are definitely lost in loss record 173 of 490 at 0x48386AF: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x483ADE7: realloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x4A5ECC3: _cairo_array_grow_by (cairo-array.c:115) by 0x4A5EEEE: _cairo_array_allocate (cairo-array.c:317) by 0x4A5EE95: _cairo_array_append_multiple (cairo-array.c:288) by 0x4A5EE6B: _cairo_array_append (cairo-array.c:265) by 0x4AFB12E: cff_index_read (cairo-cff-subset.c:438) by 0x4AFC280: cairo_cff_font_read_cid_fontdict (cairo-cff-subset.c:1022) by 0x4AFCD42: cairo_cff_font_read_top_dict (cairo-cff-subset.c:1232) by 0x4AFD145: cairo_cff_font_read_font (cairo-cff-subset.c:1351) by 0x4AFFDC0: cairo_cff_font_generate (cairo-cff-subset.c:2583) by 0x4B00D71: _cairo_cff_subset_init (cairo-cff-subset.c:2975) Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30650 Signed-off-by: Uli Schlachter src/cairo-cff-subset.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 716d144cbdcb1b0512bb81e9e53a36551640d5dc Merge: dd1f8f00d edac5f66a Author: Tim-Philipp Müller Date: Fri Jun 18 13:09:54 2021 +0000 Merge branch 'fix-meson-build' into 'master' Fix the meson build See merge request cairo/cairo!190 commit edac5f66a0353fc2c602396deae516a6a6c409d7 Author: Uli Schlachter Date: Thu Jun 17 17:03:10 2021 +0200 Fix the meson build I merged two MRs and broke the build: - One MR added perf/ to the meson build - The second MR changed lots of meson code to just dependency objects instead of just "messing" with include directories and library objects The result was that perf/meson.build now referred to include objects and library objects that no longer exist. Fix this by also using dependency objects in perf/. Signed-off-by: Uli Schlachter perf/meson.build | 47 ++++++++++++++++++++++++----------------------- perf/micro/meson.build | 7 +++++-- 2 files changed, 29 insertions(+), 25 deletions(-) commit dd1f8f00dfc69ab683dd3dbc50cb13b96d44e8bc Merge: 43a48fb6a 987bbdd7b Author: Uli Schlachter Date: Thu Jun 17 14:25:54 2021 +0000 Merge branch 'extra-test-steps' into 'master' CI: Split test execution into per-backend jobs See merge request cairo/cairo!188 commit 43a48fb6a51066665e2ed5736eb8874c8f696693 Merge: 07d601218 339671c78 Author: Uli Schlachter Date: Thu Jun 17 14:25:16 2021 +0000 Merge branch 'more-meson' into 'master' Add more of the auto-foo build to meson See merge request cairo/cairo!183 commit 987bbdd7bd7ad890ef5830d48e11e1901c3369b9 Author: Uli Schlachter Date: Fri Jun 4 16:11:18 2021 +0200 Always run tests with an X11 server This allows tests xcb-surface-source and xlib-surface-source to run. Somehow I thought this would be more complicated... Signed-off-by: Uli Schlachter .gitlab-ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 430168cc8fbeb495ac24db7b20374fa181dcc1db Author: Uli Schlachter Date: Fri Jun 4 08:50:10 2021 +0200 CI: Split test execution into per-backend jobs This creates one job per cairo backend that is tested on CI. That backend is then tested in its own job. One motivation is that this will hopefully be faster, because tests are run in parallel. Another motivation is that this lets us get around the one hour time limit per job. A downside is that the inter-backend tests are not run in CI. For example, xlib-surface-source requires a working X11 server. I am not providing that X11 server here. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 100 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 80 insertions(+), 20 deletions(-) commit 07d60121858e91ddba1aa7eda5f6474977b8c940 Merge: 39db60e95 47c70d53e Author: Uli Schlachter Date: Thu Jun 3 23:52:43 2021 +0000 Merge branch 'expected-failure-line-separated' into 'master' Move test failure lists into separate files with one test name per line See merge request cairo/cairo!187 commit 39db60e957c71e2acfd9c32ab17b4a28b4a28218 Merge: 2edcb1ac2 1e3465142 Author: Uli Schlachter Date: Thu Jun 3 15:26:07 2021 +0000 Merge branch 'build-without-zlib' into 'master' meson: Use more dependency objects & fix build without zlib Closes #475 See merge request cairo/cairo!184 commit 47c70d53e48a9ce74b6cbb64d0dffe0b96bc7ad6 Author: Uli Schlachter Date: Thu Jun 3 17:19:17 2021 +0200 Switch to line-separated test failure lists Having comma separated lists of test names that we expect to fail leads to really unreadable and useless diffs. Thus, this commit changes these lists to be separated by newlines. This change was generated with: ( cd .gitlab-ci ; for x in * ; do tr ',' '\n' < $x > .$x ; mv .$x $x ; done ) The code in .gitlab-ci.yml is changed to use tr again to transfer these lists back so that everything still works. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 48 ++--- .gitlab-ci/ignore-image-argb32.txt | 21 ++- .gitlab-ci/ignore-image-rgb24.txt | 23 ++- .gitlab-ci/ignore-image16-rgb24.txt | 265 +++++++++++++++++++++++++++- .gitlab-ci/ignore-pdf-argb32.txt | 76 +++++++- .gitlab-ci/ignore-pdf-rgb24.txt | 91 +++++++++- .gitlab-ci/ignore-quartz-argb32.txt | 54 +++++- .gitlab-ci/ignore-quartz-rgb24.txt | 55 +++++- .gitlab-ci/ignore-recording-argb32.txt | 36 +++- .gitlab-ci/ignore-recording-rgb24.txt | 37 +++- .gitlab-ci/ignore-script-argb32.txt | 191 +++++++++++++++++++- .gitlab-ci/ignore-svg11-argb32.txt | 64 ++++++- .gitlab-ci/ignore-svg11-rgb24.txt | 70 +++++++- .gitlab-ci/ignore-xcb-argb32.txt | 57 +++++- .gitlab-ci/ignore-xcb-fallback-rgb24.txt | 24 ++- .gitlab-ci/ignore-xcb-render-0-0-argb32.txt | 31 +++- .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt | 37 +++- .gitlab-ci/ignore-xcb-rgb24.txt | 133 +++++++++++++- .gitlab-ci/ignore-xcb-window&-rgb24.txt | 116 +++++++++++- .gitlab-ci/ignore-xcb-window-rgb24.txt | 116 +++++++++++- .gitlab-ci/ignore-xlib-argb32.txt | 128 +++++++++++++- .gitlab-ci/ignore-xlib-fallback-rgb24.txt | 109 +++++++++++- .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt | 55 +++++- .gitlab-ci/ignore-xlib-rgb24.txt | 186 ++++++++++++++++++- .gitlab-ci/ignore-xlib-window-rgb24.txt | 168 +++++++++++++++++- 25 files changed, 2143 insertions(+), 48 deletions(-) commit 9c9883cac0052c4786cd244b9a27c60d9d76245f Author: Uli Schlachter Date: Thu Jun 3 17:13:57 2021 +0200 Rename a file Because shell variables cannot contain &, this character was replaced with an underscore in the shell variable. However, we can have this character just fine in the file name. Thus, this commits renames a file to actually include the proper name of the boilerplate target, which is xcb-window&. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 2 +- .../{ignore-xcb-window--rgb24.txt => ignore-xcb-window&-rgb24.txt} | 0 2 files changed, 1 insertion(+), 1 deletion(-) commit 04697b33af759adab35603dab96fca8de83d650b Author: Uli Schlachter Date: Thu Jun 3 17:09:08 2021 +0200 Move test failure lists into separate files Before this commit, .gitlab-ci.yml is way too large, because it contains the list with all the expected test failure. This commit moves those lists to extra files. The files were generated with a shell one-liner: grep CAIRO_TEST_IGNORE .gitlab-ci.yml | while read line ; do backend=$(echo $line | cut -f 3 -d ' ' | cut -f1 -d= | sed -e 's/CAIRO_TEST_IGNORE_//;s/_/-/g') ; content=$(echo $line | cut -f2- -d=) ; echo $backend ; echo $content > .gitlab-ci/ignore-${backend}.txt ; done The changes to .gitlab-ci.yml were also generated with some shell scripting that generates a sed argument: grep CAIRO_TEST_IGNORE .gitlab-ci.yml | while read line ; do backend=$(echo $line | cut -f 3 -d ' ' | cut -f1 -d= ) ; file=$(echo $backend | sed -e 's/CAIRO_TEST_IGNORE_//;s/_/-/g') ; printf "/$backend/s#=.*#=\$(cat .gitlab-ci/ignore-${file}.txt)#;"; done ; echo The above can then be applied via (but of course adding ' around it and I also left out the final ;): sed -i -e [the output of the above] .gitlab-ci.yml Just for completeness, [the output of the above] is: /CAIRO_TEST_IGNORE_pdf_argb32/s#=.*#=$(cat .gitlab-ci/ignore-pdf-argb32.txt)#;/CAIRO_TEST_IGNORE_pdf_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-pdf-rgb24.txt)#;/CAIRO_TEST_IGNORE_script_argb32/s#=.*#=$(cat .gitlab-ci/ignore-script-argb32.txt)#;/CAIRO_TEST_IGNORE_image_argb32/s#=.*#=$(cat .gitlab-ci/ignore-image-argb32.txt)#;/CAIRO_TEST_IGNORE_image_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-image-rgb24.txt)#;/CAIRO_TEST_IGNORE_image16_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-image16-rgb24.txt)#;/CAIRO_TEST_IGNORE_recording_argb32/s#=.*#=$(cat .gitlab-ci/ignore-recording-argb32.txt)#;/CAIRO_TEST_IGNORE_recording_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-recording-rgb24.txt)#;/CAIRO_TEST_IGNORE_svg11_argb32/s#=.*#=$(cat .gitlab-ci/ignore-svg11-argb32.txt)#;/CAIRO_TEST_IGNORE_svg11_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-svg11-rgb24.txt)#;/CAIRO_TEST_IGNORE_xcb_argb32/s#=.*#=$(cat .gitlab-ci/ignore-xcb-argb32.txt)#;/CAIRO_TEST_IGNORE_xcb_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-xcb-rgb24.txt)#;/CAIRO_TEST_IGNORE_xcb_window_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-xcb-window-rgb24.txt)#;/CAIRO_TEST_IGNORE_xcb_window__rgb24/s#=.*#=$(cat .gitlab-ci/ignore-xcb-window--rgb24.txt)#;/CAIRO_TEST_IGNORE_xcb_render_0_0_argb32/s#=.*#=$(cat .gitlab-ci/ignore-xcb-render-0-0-argb32.txt)#;/CAIRO_TEST_IGNORE_xcb_render_0_0_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt)#;/CAIRO_TEST_IGNORE_xcb_fallback_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-xcb-fallback-rgb24.txt)#;/CAIRO_TEST_IGNORE_xlib_argb32/s#=.*#=$(cat .gitlab-ci/ignore-xlib-argb32.txt)#;/CAIRO_TEST_IGNORE_xlib_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-xlib-rgb24.txt)#;/CAIRO_TEST_IGNORE_xlib_window_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-xlib-window-rgb24.txt)#;/CAIRO_TEST_IGNORE_xlib_render_0_0_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt)#;/CAIRO_TEST_IGNORE_xlib_fallback_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-xlib-fallback-rgb24.txt)#;/CAIRO_TEST_IGNORE_quartz_argb32/s#=.*#=$(cat .gitlab-ci/ignore-quartz-argb32.txt)#;/CAIRO_TEST_IGNORE_quartz_rgb24/s#=.*#=$(cat .gitlab-ci/ignore-quartz-rgb24.txt)#; (All line breaks are only added for readability and are not part of the one-liners) Signed-off-by: Uli Schlachter .gitlab-ci.yml | 48 ++++++++++++++--------------- .gitlab-ci/ignore-image-argb32.txt | 1 + .gitlab-ci/ignore-image-rgb24.txt | 1 + .gitlab-ci/ignore-image16-rgb24.txt | 1 + .gitlab-ci/ignore-pdf-argb32.txt | 1 + .gitlab-ci/ignore-pdf-rgb24.txt | 1 + .gitlab-ci/ignore-quartz-argb32.txt | 1 + .gitlab-ci/ignore-quartz-rgb24.txt | 1 + .gitlab-ci/ignore-recording-argb32.txt | 1 + .gitlab-ci/ignore-recording-rgb24.txt | 1 + .gitlab-ci/ignore-script-argb32.txt | 1 + .gitlab-ci/ignore-svg11-argb32.txt | 1 + .gitlab-ci/ignore-svg11-rgb24.txt | 1 + .gitlab-ci/ignore-xcb-argb32.txt | 1 + .gitlab-ci/ignore-xcb-fallback-rgb24.txt | 1 + .gitlab-ci/ignore-xcb-render-0-0-argb32.txt | 1 + .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt | 1 + .gitlab-ci/ignore-xcb-rgb24.txt | 1 + .gitlab-ci/ignore-xcb-window--rgb24.txt | 1 + .gitlab-ci/ignore-xcb-window-rgb24.txt | 1 + .gitlab-ci/ignore-xlib-argb32.txt | 1 + .gitlab-ci/ignore-xlib-fallback-rgb24.txt | 1 + .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt | 1 + .gitlab-ci/ignore-xlib-rgb24.txt | 1 + .gitlab-ci/ignore-xlib-window-rgb24.txt | 1 + 25 files changed, 48 insertions(+), 24 deletions(-) commit 2edcb1ac2385c670c36d7ae53ae7de1637969ced Merge: 267d0e1c9 60d7ff988 Author: Uli Schlachter Date: Wed Jun 2 10:24:33 2021 +0000 Merge branch 'jfkthame-master-patch-75366' into 'master' [pdf-interchange] Write trees even if only LINK tags are present Closes #487 See merge request cairo/cairo!185 commit 267d0e1c988c1780f5131d098d87916ece51eece Merge: 5ae89cf30 a5b567961 Author: Uli Schlachter Date: Wed Jun 2 10:23:26 2021 +0000 Merge branch 'issue_488' into 'master' Allow empty postscript name when using a CFF font in pdf Closes #488 See merge request cairo/cairo!186 commit 5ae89cf30ed8bf162a64d9626a105f4ec68265c1 Merge: 63f0d6268 9ab52c913 Author: Uli Schlachter Date: Sun May 30 10:38:09 2021 +0000 Merge branch 'svg-backend-work' into 'master' Work on the SVG backend Closes #361, #431, #78, #4, poppler/poppler#761, poppler/poppler#619, #107, poppler/poppler#268, #73, and #478 See merge request cairo/cairo!152 commit 9ab52c9131767486700e286a7732dab1ed2e48d5 Merge: ec2cf9ac3 63f0d6268 Author: afdw Date: Sat May 29 16:21:31 2021 +0000 Merge branch 'master' into 'svg-backend-work' # Conflicts: # .gitlab-ci.yml # test/Makefile.sources # test/meson.build commit ec2cf9ac35c24495c60fff4e2fd8668bcc9ed612 Author: Anton Danilkin Date: Sat May 29 18:13:30 2021 +0200 Ignore build instead of builddir .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e27ca7d453099adcfa9e31966eee42a2a26b604 Author: Anton Danilkin Date: Sat May 29 18:04:45 2021 +0200 Remove unused _cairo_hash_table_size src/cairo-hash-private.h | 3 --- src/cairo-hash.c | 14 -------------- 2 files changed, 17 deletions(-) commit a5b5679610a211b8b65be92559d94104837f7b70 Author: Calixte Denizet Date: Wed May 26 19:21:04 2021 +0200 Allow empty postscript name when using a CFF font in pdf - it aims to fix issue #488. src/cairo-cff-subset.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 60d7ff988b458c65d9537d4d489347b1b44f399b Author: Jonathan Kew Date: Mon May 24 16:31:47 2021 +0000 [pdf-interchange] Write trees even if only LINK tags are present This avoids the PDF ending up with invalid xref entries for objects that were "reserved" but then never output. Fixes https://gitlab.freedesktop.org/cairo/cairo/-/issues/487. src/cairo-pdf-interchange.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1e34651420fa77edb09045ee0ff33432c4e73d70 Author: Uli Schlachter Date: Sat May 22 08:16:47 2021 +0200 Fix meson build without zlib Trying to build with meson with -Dzlib=disabled failed with the following error message: cairo/test/meson.build:599:2: ERROR: Unknown variable "libcairoscript_dep". This commit fixes that problem by adding a not-found dependency if cairo-script is not built. Additionally, follow-up problems are fixed: - any2ppm.c still tried to include cairo-script-interpreter.h, which was not found - Building cairo-test-trace was attempted, but that also failed because of missing script support. Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/475 Signed-off-by: Uli Schlachter test/any2ppm.c | 3 +++ test/meson.build | 2 +- util/meson.build | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) commit 1981fb6dfb51f44feb68590f51309520185e0780 Author: Uli Schlachter Date: Sat May 22 07:59:52 2021 +0200 meson: Use more dependency objects For example, to depend on cairo-script, inccairoscript was added to "include_directories:" and libcairoscript was added to "link_with:". This commit instead uses the libcairoscript_dep dependency everywhere. Signed-off-by: Uli Schlachter boilerplate/meson.build | 10 +++++++--- meson.build | 3 +-- src/meson.build | 3 ++- test/meson.build | 18 +++++++----------- test/pdiff/meson.build | 15 ++++++++++----- util/cairo-gobject/meson.build | 9 +++------ util/cairo-missing/meson.build | 7 +++++-- util/cairo-script/meson.build | 24 +++++++++--------------- util/cairo-sphinx/meson.build | 6 +++--- util/meson.build | 5 ++--- 10 files changed, 49 insertions(+), 51 deletions(-) commit 63f0d6268469dcd12316ea405a026f4be900dd79 Merge: 936e5ce8e 45cca0c98 Author: Uli Schlachter Date: Fri May 21 15:36:44 2021 +0000 Merge branch 'meson-defines' into 'master' meson: Move CAIRO_HAS_INTERPRETER to config.h See merge request cairo/cairo!174 commit 936e5ce8ee9c5e8d90ec7870398373258816677f Merge: 91225d4dd 009d75b8d Author: Uli Schlachter Date: Fri May 21 15:35:59 2021 +0000 Merge branch 'xcb-free-xid-cache' into 'master' xcb: Remove free XID cache Closes #434 See merge request cairo/cairo!175 commit 91225d4dd7522d7eefef1e57dd9a3e81e58bff92 Merge: 9fcc7fb0b 7bf3a780b Author: Uli Schlachter Date: Thu May 20 15:43:16 2021 +0000 Merge branch 'SVG-doc-scanner' into 'master' #483 See merge request cairo/cairo!182 commit 9fcc7fb0bfc345c8a6616684037b425b645aa0a8 Merge: 7c7b4e35b 7aa5e2577 Author: Uli Schlachter Date: Thu May 20 15:41:56 2021 +0000 Merge branch 'doc-scanner' into 'master' Issue #482 See merge request cairo/cairo!181 commit 339671c7872335a5ce748a635a314cbe375e303e Author: Uli Schlachter Date: Sat May 15 10:53:08 2021 +0200 meson: Add perf/ directory This adds the code under perf/ to meson. The only testing I did was "it builds for me". I do not have gtk+2 installed and so I did not even try whether that thing builds. Besides that, I mostly tried to stay close to the autofoo build. meson.build | 1 + perf/meson.build | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++ perf/micro/meson.build | 57 +++++++++++++++++++++++++++++++ 3 files changed, 151 insertions(+) commit 1c5b4716f727584373178ff5aa46d6f2df400b84 Author: Uli Schlachter Date: Fri May 14 17:08:02 2021 +0200 meson: Add shell script tests There are a couple of shell scripts in src/ that run various tests. This commit adds them to the meson build. The one exception is check-def.sh, which I couldn't get to work and thus only add it commented out. check-headers.sh and check-plt.sh required some tweaking to get them to work. check-plt.sh will print an error when run since the file '.libs/lib*.so' does not exist, but it will still run its check correctly. src/check-headers.sh | 2 +- src/check-plt.sh | 12 +++++++----- src/meson.build | 27 +++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 6 deletions(-) commit 7bf3a780bafbcbf9fb07be3b6ea89232214f07be Author: Glash Gnome Date: Thu May 13 23:21:26 2021 +0000 #483 Fix Enum_member_description src/cairo-svg.h | 1 - 1 file changed, 1 deletion(-) commit 7aa5e25772cad36cb7c6dcc7a24cf046bfc6ab18 Author: Glash Gnome Date: Thu May 13 22:36:06 2021 +0000 Issue #482 Documentation stanza src/cairo-scaled-font.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d9c9e3b696a99f126e7d718a7eb7074cf38b5164 Author: Emmanuele Bassi Date: Tue May 11 15:47:13 2021 +0100 Post-release version bump to 1.17.5 This should have been done after releasing 1.17.4, but it did not happen. The micro version component in Cairo is always odd in Git, and even in releases. src/cairo-version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76c7f5edcf7977fba3f2a9e27b1ccb8d89cb588e Author: Emmanuele Bassi Date: Tue May 11 15:34:19 2021 +0100 build: Use subdir-objects We are referencing objects in sub-directories, which means we need to tell Automake about that. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c7b4e35bc9ea281720ccb31c8f4d5440ee489e5 Merge: 0a4ba0507 1339e5c27 Author: Uli Schlachter Date: Sat May 8 06:08:48 2021 +0000 Merge branch 'macos-dejavu' into 'master' Install DejaVu fonts on macOS See merge request cairo/cairo!179 commit 1339e5c275c9a3571a1eea789b77fab588ff7d5c Author: Anton Danilkin Date: Fri May 7 23:23:43 2021 +0200 Install DejaVu fonts on macOS This also fixes some test failures. .gitlab-ci.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 0a4ba0507c4b7a5de08b2e5dcd1065d141c6661c Merge: 929262dd5 37443761c Author: Tim-Philipp Müller Date: Thu May 6 23:17:34 2021 +0000 Merge branch 'macos-artifacts' into 'master' Export test images in artifacts on macOS See merge request cairo/cairo!178 commit 37443761c9549cf56798c65ef7760ee3f8a67622 Author: Anton Danilkin Date: Fri May 7 00:45:09 2021 +0200 Export test images in artifacts on macOS .gitlab-ci.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 929262dd54ffae81721ffe9b2c59faa7b045c663 Merge: 4f61b765c ac23567a0 Author: Uli Schlachter Date: Wed May 5 14:48:20 2021 +0000 Merge branch 'jfkthame-master-patch-60882' into 'master' Bail early from _cairo_image_compute_color if image is zero-sized. See merge request cairo/cairo!177 commit ac23567a0cf5562bd7547030cd849d8d302da919 Author: Jonathan Kew Date: Wed May 5 13:43:57 2021 +0000 Bail early from _cairo_image_compute_color if image is zero-sized. This avoids the risk of encountering undefined behavior when computing the `pixel` pointer (even though it won't actually be used) in the case where the image width or height is zero and the data is NULL. (Observed when called from cairo_pdf_surface code when an extreme scaling transform was present, though I guess there are probably other ways to end up with such an image.) src/cairo-image-surface.c | 3 +++ 1 file changed, 3 insertions(+) commit c2bf6e8ae418debc97b0ca65b7e452fc650d4655 Author: Anton Danilkin Date: Mon May 3 23:41:41 2021 +0200 Fix remaining tests .gitlab-ci.yml | 66 +++++++++++---------- src/cairo-svg-surface.c | 41 +++++++------ test/cairo-test-runner.c | 61 ++++--------------- test/reference/bug-361.image16.rgb24.ref.png | Bin 0 -> 537 bytes test/reference/bug-361.xcb-window&.rgb24.ref.png | Bin 0 -> 532 bytes test/reference/bug-361.xcb-window.rgb24.ref.png | Bin 0 -> 532 bytes test/reference/bug-361.xcb.argb32.ref.png | Bin 0 -> 552 bytes test/reference/bug-361.xcb.rgb24.ref.png | Bin 0 -> 532 bytes test/reference/bug-361.xlib-window.rgb24.ref.png | Bin 0 -> 545 bytes test/reference/bug-361.xlib.argb32.ref.png | Bin 0 -> 565 bytes test/reference/bug-361.xlib.rgb24.ref.png | Bin 0 -> 545 bytes test/reference/bug-431.image16.rgb24.ref.png | Bin 0 -> 5196 bytes test/reference/bug-431.pdf.ref.png | Bin 0 -> 11041 bytes test/reference/bug-431.pdf.rgb24.ref.png | Bin 0 -> 10821 bytes test/reference/bug-431.xlib-window.rgb24.ref.png | Bin 0 -> 10833 bytes test/reference/bug-431.xlib.rgb24.ref.png | Bin 0 -> 10833 bytes .../fallback-resolution.ppi144x144.pdf.ref.png | Bin 0 -> 8653 bytes .../fallback-resolution.ppi144x144.svg.ref.png | Bin 0 -> 8653 bytes .../fallback-resolution.ppi144x72.pdf.ref.png | Bin 0 -> 8681 bytes .../fallback-resolution.ppi144x72.svg.ref.png | Bin 0 -> 8681 bytes .../fallback-resolution.ppi288x288.pdf.ref.png | Bin 8681 -> 8654 bytes .../fallback-resolution.ppi288x288.svg.ref.png | Bin 0 -> 8654 bytes .../fallback-resolution.ppi288x72.pdf.ref.png | Bin 0 -> 8757 bytes .../fallback-resolution.ppi288x72.svg.ref.png | Bin 0 -> 8757 bytes .../fallback-resolution.ppi576x576.pdf.ref.png | Bin 8732 -> 8588 bytes .../fallback-resolution.ppi576x576.svg.ref.png | Bin 0 -> 8588 bytes .../fallback-resolution.ppi576x72.pdf.ref.png | Bin 0 -> 8751 bytes .../fallback-resolution.ppi576x72.svg.ref.png | Bin 0 -> 8751 bytes .../fallback-resolution.ppi72x144.pdf.ref.png | Bin 0 -> 8597 bytes .../fallback-resolution.ppi72x144.svg.ref.png | Bin 0 -> 8597 bytes .../fallback-resolution.ppi72x288.pdf.ref.png | Bin 0 -> 8667 bytes .../fallback-resolution.ppi72x288.svg.ref.png | Bin 0 -> 8667 bytes .../fallback-resolution.ppi72x576.pdf.ref.png | Bin 0 -> 8665 bytes .../fallback-resolution.ppi72x576.svg.ref.png | Bin 0 -> 8665 bytes .../fallback-resolution.ppi72x72.pdf.ref.png | Bin 0 -> 8713 bytes .../fallback-resolution.ppi72x72.svg.ref.png | Bin 0 -> 8713 bytes test/reference/mime-data.svg.ref.png | Bin 0 -> 6513 bytes test/reference/operator-www.image16.rgb24.ref.png | Bin 0 -> 36150 bytes test/reference/operator-www.pdf.ref.png | Bin 0 -> 34170 bytes .../reference/pixman-downscale-best-24.svg.ref.png | Bin 0 -> 179 bytes test/reference/pthread-same-source.svg.ref.png | Bin 0 -> 956 bytes test/reference/pthread-show-text.svg.ref.png | Bin 0 -> 48816 bytes test/reference/pthread-similar.svg.ref.png | Bin 0 -> 176 bytes .../record-transform-paint.image16.rgb24.ref.png | Bin 0 -> 2230 bytes test/reference/record-transform-paint.pdf.ref.png | Bin 0 -> 2166 bytes test/reference/user-font-mask.svg.ref.png | Bin 0 -> 5527 bytes test/shifted-operator.c | 2 + 47 files changed, 68 insertions(+), 102 deletions(-) commit 9e497a3cb82a429a04dbbce8debeba5e0e37cf29 Author: Anton Danilkin Date: Mon May 3 23:38:28 2021 +0200 Introduce CAIRO_BOILERPLATE_OPEN_NO_DAEMON and CAIRO_BOILERPLATE_DO_NOT_CRASH_ON_ANY2PPM_ERROR boilerplate/cairo-boilerplate.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 42128f1742050428dbe9f4570c1d57d64e7975c0 Author: Anton Danilkin Date: Mon May 3 22:13:16 2021 +0200 Fix reference images test/reference/alpha-similar.svg.argb32.xfail.png | Bin 99 -> 0 bytes test/reference/alpha-similar.svg.rgb24.xfail.png | Bin 95 -> 0 bytes test/reference/arc-looping-dash.svg.ref.png | Bin 0 -> 472 bytes test/reference/bug-431.svg.rgb24.ref.png | Bin 0 -> 10818 bytes test/reference/bug-51910.svg.ref.png | Bin 0 -> 1880 bytes test/reference/bug-84115.svg.ref.png | Bin 0 -> 62960 bytes test/reference/bug-bo-ricotz.svg.rgb24.ref.png | Bin 0 -> 2123 bytes test/reference/bug-image-compositor.svg.ref.png | Bin 0 -> 185 bytes test/reference/caps-05.svg.ref.png | Bin 0 -> 1162 bytes test/reference/caps-1.svg.ref.png | Bin 0 -> 1331 bytes test/reference/caps-2.svg.ref.png | Bin 0 -> 1446 bytes test/reference/caps-joins-05.svg.ref.png | Bin 0 -> 1797 bytes test/reference/caps-joins-1.svg.ref.png | Bin 0 -> 1892 bytes test/reference/caps-joins-2.svg.ref.png | Bin 0 -> 1716 bytes test/reference/caps-joins-curve.svg.ref.png | Bin 0 -> 5721 bytes test/reference/caps-sub-paths.svg.ref.png | Bin 0 -> 165 bytes test/reference/caps-tails-curve.svg.ref.png | Bin 0 -> 53213 bytes test/reference/caps.svg.ref.png | Bin 0 -> 1836 bytes test/reference/checkerboard.svg.ref.png | Bin 0 -> 152 bytes test/reference/clear.svg12.argb32.xfail.png | Bin 170 -> 0 bytes test/reference/clear.svg12.rgb24.xfail.png | Bin 170 -> 0 bytes test/reference/clip-complex-bug61592.svg.ref.png | Bin 0 -> 128 bytes test/reference/clip-disjoint-quad.svg.ref.png | Bin 0 -> 1555 bytes test/reference/clip-fill-eo-unbounded.svg.ref.png | Bin 0 -> 3692 bytes .../clip-fill-eo-unbounded.svg12.rgb24.xfail.png | Bin 3636 -> 0 bytes test/reference/clip-fill-nz-unbounded.svg.ref.png | Bin 0 -> 3692 bytes .../clip-fill-nz-unbounded.svg12.rgb24.xfail.png | Bin 3636 -> 0 bytes test/reference/clip-image.svg.ref.png | Bin 0 -> 2681 bytes .../reference/clip-operator.svg12.argb32.xfail.png | Bin 8378 -> 0 bytes test/reference/clip-operator.svg12.rgb24.xfail.png | Bin 4566 -> 0 bytes test/reference/clip-push-group.svg.ref.png | Bin 175 -> 181 bytes .../clip-rotate-image-surface-paint.svg.ref.png | Bin 0 -> 369 bytes test/reference/clip-stroke-unbounded.svg.ref.png | Bin 0 -> 3675 bytes .../clip-stroke-unbounded.svg12.rgb24.xfail.png | Bin 3569 -> 0 bytes test/reference/clip-text.svg.ref.png | Bin 946 -> 0 bytes .../reference/clip-unbounded.svg12.rgb24.xfail.png | Bin 100 -> 0 bytes test/reference/clipped-group.svg.ref.png | Bin 250 -> 280 bytes .../reference/close-path-current-point.svg.ref.png | Bin 0 -> 1959 bytes test/reference/close-path.svg.ref.png | Bin 0 -> 285 bytes ...integer-translate-source.svg12.argb32.xfail.png | Bin 16392 -> 0 bytes ...-integer-translate-source.svg12.rgb24.xfail.png | Bin 16392 -> 0 bytes test/reference/copy-path.svg.ref.png | Bin 0 -> 618 bytes test/reference/dash-caps-joins.svg.ref.png | Bin 0 -> 4710 bytes test/reference/dash-curve.svg.ref.png | Bin 0 -> 40984 bytes test/reference/dash-infinite-loop.svg.ref.png | Bin 0 -> 665 bytes test/reference/dash-scale.svg.ref.png | Bin 0 -> 7824 bytes test/reference/dash-state.svg.ref.png | Bin 0 -> 7407 bytes test/reference/dash-zero-length.svg.ref.png | Bin 0 -> 219 bytes test/reference/degenerate-arcs.svg.ref.png | Bin 0 -> 120 bytes test/reference/degenerate-curve-to.svg.ref.png | Bin 0 -> 282 bytes .../degenerate-linear-gradient.svg.ref.png | Bin 0 -> 328 bytes test/reference/degenerate-path.svg.ref.png | Bin 0 -> 238 bytes test/reference/degenerate-pen.svg.ref.png | Bin 0 -> 1004 bytes .../degenerate-radial-gradient.svg.ref.png | Bin 0 -> 439 bytes test/reference/degenerate-rel-curve-to.svg.ref.png | Bin 0 -> 277 bytes .../reference/device-offset-fractional.svg.ref.png | Bin 0 -> 260 bytes test/reference/device-offset-scale.svg.xfail.png | Bin 128 -> 0 bytes test/reference/extend-pad-border.svg.ref.png | Bin 0 -> 505 bytes test/reference/extend-pad-border.svg.xfail.png | Bin 1063 -> 0 bytes test/reference/extend-pad-similar.svg.xfail.png | Bin 270 -> 0 bytes test/reference/extend-pad.svg.xfail.png | Bin 270 -> 0 bytes .../extended-blend-alpha.svg12.argb32.xfail.png | Bin 6658 -> 0 bytes .../extended-blend-alpha.svg12.rgb24.xfail.png | Bin 5014 -> 0 bytes .../extended-blend.svg12.argb32.xfail.png | Bin 2273 -> 0 bytes .../reference/extended-blend.svg12.rgb24.xfail.png | Bin 1856 -> 0 bytes .../fallback-resolution.ppi288x288.svg.ref.png | Bin 5771 -> 0 bytes .../fallback-resolution.ppi576x576.svg.ref.png | Bin 4317 -> 0 bytes test/reference/fallback.svg.ref.png | Bin 0 -> 5999 bytes test/reference/fallback.svg.rgb24.ref.png | Bin 0 -> 3273 bytes .../fill-and-stroke-alpha-add.svg.ref.png | Bin 0 -> 562 bytes .../fill-and-stroke-alpha-add.svg12.xfail.png | Bin 631 -> 0 bytes test/reference/fill-and-stroke-alpha.svg.ref.png | Bin 0 -> 520 bytes test/reference/fill-and-stroke.svg.ref.png | Bin 0 -> 339 bytes test/reference/fill-empty.svg12.rgb24.xfail.png | Bin 99 -> 0 bytes test/reference/fill-missed-stop.svg.ref.png | Bin 0 -> 447 bytes test/reference/filter-nearest-offset.svg.xfail.png | Bin 4419 -> 0 bytes .../filter-nearest-transformed.svg.xfail.png | Bin 546 -> 0 bytes test/reference/finer-grained-fallbacks.svg.ref.png | Bin 0 -> 1134 bytes .../finer-grained-fallbacks.svg12.argb32.ref.png | Bin 190 -> 0 bytes .../finer-grained-fallbacks.svg12.rgb24.ref.png | Bin 191 -> 0 bytes test/reference/font-matrix-translation.svg.ref.png | Bin 870 -> 845 bytes .../ft-show-glyphs-positioning.svg.ref.png | Bin 6018 -> 0 bytes test/reference/ft-show-glyphs-table.svg.ref.png | Bin 10005 -> 10040 bytes .../ft-text-vertical-layout-type1.svg.ref.png | Bin 3607 -> 0 bytes .../ft-text-vertical-layout-type3.svg.ref.png | Bin 3626 -> 0 bytes test/reference/glyph-cache-pressure.svg.ref.png | Bin 0 -> 2874 bytes test/reference/gradient-alpha.svg.ref.png | Bin 0 -> 128 bytes test/reference/gradient-constant-alpha.svg.ref.png | Bin 0 -> 107 bytes .../reference/group-unaligned.svg.argb32.xfail.png | Bin 520 -> 0 bytes test/reference/group-unaligned.svg.ref.png | Bin 0 -> 523 bytes test/reference/group-unaligned.svg.rgb24.xfail.png | Bin 425 -> 0 bytes test/reference/halo.svg.ref.png | Bin 0 -> 6346 bytes test/reference/huge-radial.svg.ref.png | Bin 0 -> 47207 bytes .../image-surface-source.svg12.argb32.xfail.png | Bin 278 -> 0 bytes .../image-surface-source.svg12.rgb24.xfail.png | Bin 278 -> 0 bytes test/reference/infinite-join.svg.ref.png | Bin 0 -> 164 bytes test/reference/inverse-text.svg.ref.png | Bin 0 -> 2176 bytes test/reference/joins.svg.ref.png | Bin 0 -> 6320 bytes test/reference/large-font.svg.ref.png | Bin 0 -> 6126 bytes test/reference/leaky-dashed-stroke.svg.ref.png | Bin 0 -> 9283 bytes test/reference/leaky-polygon.svg.ref.png | Bin 0 -> 330 bytes test/reference/line-width-scale.svg.ref.png | Bin 0 -> 5676 bytes test/reference/line-width-tolerance.svg.ref.png | Bin 0 -> 163 bytes test/reference/linear-gradient-extend.svg.ref.png | Bin 0 -> 388 bytes test/reference/linear-gradient-subset.svg.ref.png | Bin 0 -> 800 bytes test/reference/linear-gradient.svg.ref.png | Bin 0 -> 963 bytes test/reference/long-dashed-lines.svg.ref.png | Bin 0 -> 2092 bytes test/reference/mask-alpha.svg.rgb24.xfail.png | Bin 585 -> 0 bytes test/reference/mask-glyphs.svg.ref.png | Bin 1211144 -> 0 bytes test/reference/mask-transformed-image.svg.ref.png | Bin 0 -> 3751 bytes .../reference/mask-transformed-similar.svg.ref.png | Bin 3365 -> 3528 bytes test/reference/mask.svg.argb32.xfail.png | Bin 8641 -> 0 bytes test/reference/mask.svg.ref.png | Bin 0 -> 8584 bytes test/reference/mask.svg.rgb24.xfail.png | Bin 7199 -> 0 bytes test/reference/mesh-pattern-conical.svg.ref.png | Bin 0 -> 8767 bytes .../mesh-pattern-control-points.svg.ref.png | Bin 0 -> 10937 bytes test/reference/mesh-pattern-fold.svg.ref.png | Bin 0 -> 53096 bytes test/reference/mesh-pattern-overlap.svg.ref.png | Bin 0 -> 9114 bytes .../reference/mesh-pattern-transformed.svg.ref.png | Bin 0 -> 14540 bytes test/reference/mesh-pattern.svg.ref.png | Bin 0 -> 19765 bytes test/reference/mime-data.svg.ref.png | Bin 6513 -> 0 bytes test/reference/new-sub-path.svg.ref.png | Bin 0 -> 432 bytes test/reference/operator-alpha-alpha.svg.xfail.png | Bin 838 -> 0 bytes .../operator-alpha.svg12.argb32.xfail.png | Bin 274 -> 0 bytes .../reference/operator-alpha.svg12.rgb24.xfail.png | Bin 248 -> 0 bytes test/reference/operator-clear.svg.ref.png | Bin 0 -> 1055 bytes .../operator-clear.svg12.argb32.xfail.png | Bin 405 -> 0 bytes .../reference/operator-clear.svg12.rgb24.xfail.png | Bin 535 -> 0 bytes test/reference/operator-source.svg.ref.png | Bin 0 -> 5639 bytes test/reference/operator-www.svg.ref.png | Bin 0 -> 39790 bytes test/reference/operator-www.svg.rgb24.ref.png | Bin 0 -> 39605 bytes test/reference/operator.svg12.argb32.xfail.png | Bin 238 -> 0 bytes test/reference/operator.svg12.rgb24.xfail.png | Bin 242 -> 0 bytes .../over-above-source.svg12.rgb24.xfail.png | Bin 563 -> 0 bytes .../over-around-source.svg12.argb32.xfail.png | Bin 559 -> 0 bytes .../over-around-source.svg12.rgb24.xfail.png | Bin 559 -> 0 bytes .../over-below-source.svg12.argb32.xfail.png | Bin 224 -> 0 bytes .../over-below-source.svg12.rgb24.xfail.png | Bin 224 -> 0 bytes .../over-between-source.svg12.argb32.xfail.png | Bin 224 -> 0 bytes .../over-between-source.svg12.rgb24.xfail.png | Bin 224 -> 0 bytes .../overlapping-glyphs.svg.argb32.ref.png | Bin 2338 -> 0 bytes .../reference/overlapping-glyphs.svg.rgb24.ref.png | Bin 2338 -> 0 bytes test/reference/paint-source-alpha.svg.ref.png | Bin 693 -> 0 bytes .../paint-with-alpha-solid-clip.svg.ref.png | Bin 0 -> 265 bytes test/reference/paint-with-alpha.svg.ref.png | Bin 483 -> 0 bytes .../reference/partial-clip-text-bottom.svg.ref.png | Bin 0 -> 265 bytes test/reference/partial-clip-text-left.svg.ref.png | Bin 0 -> 299 bytes test/reference/partial-clip-text-right.svg.ref.png | Bin 0 -> 155 bytes test/reference/partial-clip-text-top.svg.ref.png | Bin 173 -> 172 bytes test/reference/path-stroke-twice.svg.ref.png | Bin 0 -> 214 bytes .../pdf-surface-source.svg12.argb32.xfail.png | Bin 278 -> 0 bytes .../pdf-surface-source.svg12.rgb24.xfail.png | Bin 278 -> 0 bytes ...ef.png => pixman-downscale-best-95.svg.ref.png} | Bin .../pixman-downscale-bilinear-24.svg.ref.png | Bin 0 -> 179 bytes .../reference/pixman-downscale-fast-24.svg.ref.png | Bin 0 -> 179 bytes ...ef.png => pixman-downscale-fast-95.svg.ref.png} | Bin .../pixman-downscale-fast-95.svg12.ref.png | Bin 474 -> 0 bytes .../reference/pixman-downscale-good-24.svg.ref.png | Bin 0 -> 179 bytes .../pixman-downscale-nearest-24.svg.ref.png | Bin 0 -> 179 bytes ...png => pixman-downscale-nearest-95.svg.ref.png} | Bin .../pixman-downscale-nearest-95.svg11.ref.png | Bin 474 -> 0 bytes .../pixman-downscale-nearest-95.svg12.ref.png | Bin 474 -> 0 bytes test/reference/pixman-rotate.svg.ref.png | Bin 0 -> 260 bytes .../ps-surface-source.svg12.argb32.xfail.png | Bin 278 -> 0 bytes .../ps-surface-source.svg12.rgb24.xfail.png | Bin 278 -> 0 bytes test/reference/push-group-color.svg.ref.png | Bin 0 -> 3009 bytes test/reference/push-group.svg.ref.png | Bin 0 -> 3133 bytes test/reference/radial-gradient-extend.svg.ref.png | Bin 0 -> 483 bytes .../radial-gradient-mask-source.svg.ref.png | Bin 0 -> 135378 bytes test/reference/radial-gradient-mask.svg.ref.png | Bin 0 -> 273891 bytes .../reference/radial-gradient-one-stop.svg.ref.png | Bin 0 -> 6444 bytes test/reference/radial-gradient-source.ref.png | Bin 423689 -> 423689 bytes test/reference/radial-gradient-source.svg.ref.png | Bin 0 -> 423874 bytes test/reference/radial-gradient.svg.ref.png | Bin 0 -> 382981 bytes test/reference/record-fill-alpha.svg.ref.png | Bin 0 -> 2754 bytes test/reference/record-mesh.svg.ref.png | Bin 0 -> 15400 bytes .../record-neg-extents-bounded.svg.ref.png | Bin 0 -> 537 bytes .../record-neg-extents-unbounded.svg.ref.png | Bin 0 -> 537 bytes .../record-paint-alpha-solid-clip.svg.ref.png | Bin 0 -> 265 bytes .../reference/record-replay-extend-pad.svg.ref.png | Bin 0 -> 1149 bytes .../record-replay-extend-reflect.svg.ref.png | Bin 0 -> 1953 bytes .../record-replay-extend-repeat.svg.ref.png | Bin 0 -> 5714 bytes .../record-replay-extend-repeat.svg.rgb24.ref.png | Bin 0 -> 4861 bytes test/reference/record-select-font-face.svg.ref.png | Bin 0 -> 2247 bytes test/reference/record-text-transform.svg.ref.png | Bin 0 -> 5636 bytes test/reference/record1414x-fill-alpha.svg.ref.png | Bin 0 -> 5935 bytes .../record1414x-paint-alpha-solid-clip.svg.ref.png | Bin 0 -> 4413 bytes test/reference/record1414x-paint.svg.ref.png | Bin 0 -> 215 bytes .../record1414x-self-intersecting.svg.ref.png | Bin 0 -> 655 bytes test/reference/record2x-fill-alpha.svg.ref.png | Bin 0 -> 5782 bytes .../record2x-paint-alpha-solid-clip.svg.ref.png | Bin 0 -> 379 bytes .../record2x-select-font-face.svg.ref.png | Bin 0 -> 4469 bytes test/reference/record2x-text-transform.svg.ref.png | Bin 0 -> 13364 bytes test/reference/record90-fill-alpha.svg.ref.png | Bin 0 -> 2661 bytes .../record90-paint-alpha-solid-clip.svg.ref.png | Bin 0 -> 270 bytes .../record90-select-font-face.svg.ref.png | Bin 0 -> 2238 bytes .../record90-self-intersecting.svg.ref.png | Bin 0 -> 240 bytes test/reference/record90-text-transform.svg.ref.png | Bin 0 -> 5770 bytes test/reference/recordflip-fill-alpha.svg.ref.png | Bin 0 -> 2799 bytes .../recordflip-select-font-face.svg.ref.png | Bin 0 -> 2230 bytes .../recordflip-text-transform.svg.ref.png | Bin 0 -> 5680 bytes .../recordflip-whole-select-font-face.svg.ref.png | Bin 0 -> 2230 bytes .../recordflip-whole-text-transform.svg.ref.png | Bin 0 -> 5680 bytes .../recording-surface-extend-none.svg.ref.png | Bin 0 -> 3892 bytes .../recording-surface-extend-reflect.svg.ref.png | Bin 0 -> 35835 bytes .../recording-surface-extend-repeat.svg.ref.png | Bin 0 -> 47129 bytes ...cording-surface-extend-repeat.svg.rgb24.ref.png | Bin 0 -> 30830 bytes .../recording-surface-over.svg.argb32.ref.png | Bin 3778 -> 0 bytes test/reference/recording-surface-over.svg.ref.png | Bin 0 -> 3892 bytes .../recording-surface-over.svg.rgb24.ref.png | Bin 3760 -> 0 bytes .../reference/recording-surface-source.svg.ref.png | Bin 0 -> 3892 bytes .../rectilinear-dash-scale-unaligned.svg.ref.png | Bin 0 -> 3746 bytes test/reference/rectilinear-dash-scale.svg.ref.png | Bin 0 -> 677 bytes test/reference/rectilinear-miter-limit.svg.ref.png | Bin 0 -> 145 bytes test/reference/reflected-stroke.svg.ref.png | Bin 0 -> 5197 bytes test/reference/rel-path.svg.ref.png | Bin 0 -> 193 bytes .../rotate-clip-image-surface-paint.svg.ref.png | Bin 0 -> 362 bytes .../rotate-image-surface-paint.svg.ref.png | Bin 209 -> 408 bytes .../rotate-image-surface-paint.svg.xfail.png | Bin 387 -> 0 bytes test/reference/scale-offset-similar.svg.ref.png | Bin 0 -> 9742 bytes ...scale-source-surface-paint.svg.argb32.xfail.png | Bin 229 -> 0 bytes .../scale-source-surface-paint.svg.rgb24.xfail.png | Bin 222 -> 0 bytes test/reference/select-font-face.svg.ref.png | Bin 0 -> 2247 bytes test/reference/set-source.svg.ref.png | Bin 0 -> 111 bytes test/reference/shape-sierpinski.svg.ref.png | Bin 0 -> 54773 bytes test/reference/shifted-operator.rgb24.ref.png | Bin 334 -> 403 bytes test/reference/shifted-operator.svg.rgb24.ref.png | Bin 334 -> 0 bytes test/reference/show-glyphs-advance.svg.ref.png | Bin 1435 -> 0 bytes test/reference/show-text-current-point.svg.ref.png | Bin 0 -> 2167 bytes test/reference/smask-fill.svg.ref.png | Bin 1150 -> 1182 bytes test/reference/smask-image-mask.svg.ref.png | Bin 0 -> 657 bytes test/reference/smask-mask.svg.ref.png | Bin 2376 -> 2310 bytes test/reference/smask-paint.svg.ref.png | Bin 2453 -> 2429 bytes test/reference/smask-stroke.svg.ref.png | Bin 0 -> 1505 bytes test/reference/smask-text.svg.ref.png | Bin 1794 -> 1849 bytes test/reference/smask.svg.ref.png | Bin 3457 -> 3438 bytes test/reference/smp-glyph.svg.ref.png | Bin 0 -> 302 bytes test/reference/spline-decomposition.svg.ref.png | Bin 19540 -> 19434 bytes test/reference/stroke-ctm-caps.svg.ref.png | Bin 0 -> 861 bytes test/reference/stroke-pattern.svg.ref.png | Bin 0 -> 1513 bytes .../surface-pattern-scale-down.svg.ref.png | Bin 0 -> 1958 bytes test/reference/surface-pattern.svg.xfail.png | Bin 16069 -> 0 bytes .../svg-surface-source.base.argb32.ref.png | Bin 377 -> 0 bytes .../svg-surface-source.base.rgb24.ref.png | Bin 301 -> 0 bytes test/reference/svg-surface-source.image16.ref.png | Bin 305 -> 0 bytes test/reference/svg-surface-source.ps.rgb24.ref.png | Bin 312 -> 0 bytes test/reference/svg-surface-source.ref.png | Bin 377 -> 0 bytes .../svg-surface-source.svg12.argb32.xfail.png | Bin 278 -> 0 bytes .../svg-surface-source.svg12.rgb24.xfail.png | Bin 278 -> 0 bytes test/reference/text-glyph-range.svg.ref.png | Bin 0 -> 1491 bytes test/reference/text-pattern.svg.argb32.ref.png | Bin 1745 -> 0 bytes test/reference/text-pattern.svg.rgb24.ref.png | Bin 1453 -> 0 bytes test/reference/text-rotate.svg.ref.png | Bin 17118 -> 0 bytes test/reference/text-transform.svg.ref.png | Bin 5682 -> 5636 bytes test/reference/tiger.svg.ref.png | Bin 0 -> 94468 bytes test/reference/transforms.svg.ref.png | Bin 0 -> 314 bytes test/reference/trap-clip.svg.ref.png | Bin 0 -> 5857 bytes test/reference/twin.svg.ref.png | Bin 3040 -> 3298 bytes .../unbounded-operator.svg12.argb32.ref.png | Bin 2767 -> 0 bytes .../unbounded-operator.svg12.rgb24.xfail.png | Bin 1731 -> 0 bytes test/reference/unclosed-strokes.svg.ref.png | Bin 0 -> 1504 bytes test/reference/user-font-mask.svg.ref.png | Bin 2030 -> 0 bytes test/reference/user-font-proxy.svg.ref.png | Bin 16814 -> 16938 bytes test/reference/user-font-rescale.svg.ref.png | Bin 14873 -> 15031 bytes test/reference/user-font.svg.ref.png | Bin 6379 -> 5851 bytes test/reference/world-map-fill.svg.ref.png | Bin 0 -> 57599 bytes test/reference/world-map-stroke.svg.ref.png | Bin 0 -> 65969 bytes test/reference/world-map.svg.ref.png | Bin 0 -> 70825 bytes .../xlib-surface-source.svg12.argb32.xfail.png | Bin 278 -> 0 bytes .../xlib-surface-source.svg12.rgb24.xfail.png | Bin 278 -> 0 bytes 270 files changed, 0 insertions(+), 0 deletions(-) commit 5b678d818566bc1fd1abe3ab41662f13ffa39687 Author: Anton Danilkin Date: Mon May 3 14:58:19 2021 +0200 Fix applying shifted operators src/cairo-svg-surface.c | 280 ++++++++++++++++------ test/Makefile.sources | 1 + test/meson.build | 1 + test/reference/shifted-operator.ref.png | Bin 0 -> 448 bytes test/reference/shifted-operator.rgb24.ref.png | Bin 0 -> 334 bytes test/reference/shifted-operator.svg.rgb24.ref.png | Bin 0 -> 334 bytes test/shifted-operator.c | 56 +++++ 7 files changed, 260 insertions(+), 78 deletions(-) commit c30a031a686e53d7df4f86aae52823a4282c046c Author: Anton Danilkin Date: Mon May 3 09:58:40 2021 +0200 Fix painting of glyphs src/cairo-svg-surface.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 55b57b2c681929077de649f65d10d05f74c2c5b6 Author: Anton Danilkin Date: Mon May 3 00:30:57 2021 +0200 Fix operators in Chrome src/cairo-svg-surface.c | 94 ++++++++++++++++++++++++------------------------- 1 file changed, 46 insertions(+), 48 deletions(-) commit 10552fa78f63266f448bd0785ef3ef27cb91b9a3 Author: Anton Danilkin Date: Mon May 3 00:30:14 2021 +0200 Use g instead of symbol for glyphs src/cairo-svg-surface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 62628c8886c074f8cc3e3d96e55120e3abf72f15 Author: Anton Danilkin Date: Sun May 2 21:38:02 2021 +0200 Migrate from cairo_output_stream_t to cairo_svg_stream_t src/cairo-svg-surface.c | 1722 ++++++++++++++++++++++++++--------------------- 1 file changed, 945 insertions(+), 777 deletions(-) commit 45cca0c984c17e98964beb63410627298d1f6a01 Author: Uli Schlachter Date: Sun May 2 21:25:48 2021 +0200 meson: Move CAIRO_HAS_INTERPRETER to config.h This is what autoconf does and hopefully that means this is the correct thing to do. Signed-off-by: Uli Schlachter meson.build | 4 ++-- util/meson.build | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 009d75b8db33a8e5ae42eddcb63d9c5a5da9b60e Author: Uli Schlachter Date: Sun May 2 19:30:28 2021 +0200 xcb: remove free pixmap/gc wrappers With the last commit, these became pointless. Just switch the code to call the underlying function directly. Signed-off-by: Uli Schlachter src/cairo-xcb-connection-core.c | 14 -------------- src/cairo-xcb-private.h | 8 -------- src/cairo-xcb-screen.c | 4 ++-- src/cairo-xcb-surface-core.c | 2 +- src/cairo-xcb-surface-render.c | 4 ++-- src/cairo-xcb-surface.c | 6 +++--- 6 files changed, 8 insertions(+), 30 deletions(-) commit 56378ee69e599b553f15ccf12fef41f6f3e6d8b8 Author: Anton Danilkin Date: Sun May 2 19:28:55 2021 +0200 Do not try to emulate the fill_stroke operations ourselves src/cairo-svg-surface.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit c16094fc443c076475c4633d83d6e67539cf423e Author: Uli Schlachter Date: Sun May 2 17:49:32 2021 +0200 xcb: Remove free XID cache cairo-xcb kept a cache of free xid to avoid calling xcb_generate_id() later. However, this is unsafe: When libxcb runs out of ids, it asks the X11 server for an empty range of ids to use. The X11 server of course does not know about cairo's cache and could hand out an id that cairo will use again later. This would then result in BadIdChoice errors later. Fix this by simply removing the whole cache. Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/434 Signed-off-by: Uli Schlachter src/cairo-xcb-connection-core.c | 6 ++--- src/cairo-xcb-connection-render.c | 2 -- src/cairo-xcb-connection-shm.c | 3 +-- src/cairo-xcb-connection.c | 50 ++------------------------------------- src/cairo-xcb-private.h | 10 -------- src/cairo-xcb-surface-render.c | 6 ++--- 6 files changed, 8 insertions(+), 69 deletions(-) commit 4f61b765c9f657fd755194afe576e56f945af4b6 Merge: aa0231524 753ea90ac Author: Uli Schlachter Date: Sun May 2 14:55:48 2021 +0000 Merge branch 'record-png-offset' into 'master' Add a test case for commit d07fb410568423 See merge request cairo/cairo!122 commit aa02315243a5b3ea3dd1bacb61d4ad69fec2e5e2 Merge: 8f6cfe417 bd1384125 Author: Uli Schlachter Date: Sun May 2 05:48:26 2021 +0000 Merge branch 'ebassi/config-define' into 'master' meson: Define HAVE_CONFIG_H as a project flag See merge request cairo/cairo!172 commit 8f4668b4bfb1dcdee6e600a16a6fcc9edb8422be Author: Anton Danilkin Date: Sat May 1 23:40:02 2021 +0200 Disable support for SVG 2 operators src/cairo-svg-surface.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit bd487e64fc3680abf2dd9e165c7506043132229d Author: Anton Danilkin Date: Sat May 1 23:11:13 2021 +0200 Add support for CAIRO_CONTENT_COLOR boilerplate/cairo-boilerplate-svg.c | 24 +++++++------ src/cairo-svg-surface.c | 37 +++++++++++++++------ test/operator-www.c | 15 +++++++-- ...ge.rgb24.ref.png => operator-www.rgb24.ref.png} | Bin 4 files changed, 52 insertions(+), 24 deletions(-) commit a3e01d9e8c79c4dddd401af15bf37db7d75435ec Author: Anton Danilkin Date: Sat May 1 23:05:03 2021 +0200 Emit a transparent paint in "lerp_compositing_group"s to extends the bounds of the REMOVE_COLOR_AND_INVERT_ALPHA filter src/cairo-svg-surface.c | 2 ++ 1 file changed, 2 insertions(+) commit bd138412579e9a7c251ea8f2f1bb2cdb3d0bf95b Author: Emmanuele Bassi Date: Sat May 1 17:05:29 2021 +0100 Drop the conditional inclusion of config.h We *always* generate this file, and we depend on its existence. The idea behind HAVE_CONFIG_H was being able to include random files from different projects, back in a time where "libraries" were literally just random files instead of actual shared objects. Since we're not in the '80s any more, and our build system(s) define HAVE_CONFIG_H *and* generate the config.h header file, we don't need a conditional guard around its inclusion. boilerplate/cairo-boilerplate.h | 2 -- perf/cairo-perf-print.c | 2 -- src/cairo-atomic-private.h | 4 +--- src/cairo-compiler-private.h | 2 -- src/cairo-mutex-impl-private.h | 2 -- src/cairo-wideint-type-private.h | 2 -- src/cairoint.h | 2 -- test/any2ppm.c | 2 -- test/api-special-cases.c | 2 -- test/buffer-diff.c | 2 -- test/cairo-test.c | 2 -- test/error-setters.c | 2 -- test/fallback-resolution.c | 2 -- test/imagediff.c | 2 -- test/pdiff/pdiff.c | 2 -- test/ps-eps.c | 2 -- test/solid-pattern-cache-stress.c | 2 -- test/toy-font-face.c | 2 -- util/cairo-fdr/fdr.c | 2 -- util/cairo-gobject/cairo-gobject-enums.c | 2 -- util/cairo-gobject/cairo-gobject-structs.c | 2 -- util/cairo-script/cairo-script-private.h | 2 -- util/cairo-sphinx/fdr.c | 2 -- util/cairo-sphinx/sphinx.c | 2 -- util/cairo-trace/lookup-symbol.c | 2 -- util/cairo-trace/trace.c | 2 -- util/trace-to-xml.c | 2 -- 27 files changed, 1 insertion(+), 55 deletions(-) commit bfd1602db9fd0d23074ef4d1628de66d70241c3b Author: Emmanuele Bassi Date: Sat May 1 16:58:15 2021 +0100 Remove stray _GNU_SOURCE definitions We define _GNU_SOURCE globally in both the Autotools build, through the use of the AC_USE_SYSTEM_EXTENSIONS macro; and in the Meson build, with add_project_arguments(). boilerplate/cairo-boilerplate-system.c | 2 -- perf/cairo-analyse-trace.c | 2 +- perf/cairo-perf-micro.c | 2 +- perf/cairo-perf-report.c | 6 ++---- perf/cairo-perf-trace.c | 2 +- src/cairo-misc.c | 2 -- src/cairo-quartz-surface.c | 1 - test/cairo-test-trace.c | 2 -- test/cairo-test.c | 2 -- test/invalid-matrix.c | 2 +- test/pdiff/pdiff.c | 2 -- util/cairo-fdr/fdr.c | 2 -- util/cairo-sphinx/fdr.c | 2 -- util/cairo-trace/lookup-symbol.c | 2 -- util/cairo-trace/trace.c | 2 -- util/show-contour.c | 3 ++- util/show-edges.c | 3 ++- util/show-events.c | 3 ++- util/show-polygon.c | 3 ++- util/show-traps.c | 3 ++- 20 files changed, 16 insertions(+), 32 deletions(-) commit 833630979404faae2bd99c59e4e5739e675917f0 Author: Emmanuele Bassi Date: Sat May 1 16:55:38 2021 +0100 meson: Define HAVE_CONFIG_H as a project flag Precisely what Autotools does, instead of adding it as per-target C argument. Once we remove HAVE_CONFIG_H checks in every source file, we'll be able to drop it. boilerplate/meson.build | 2 -- meson.build | 3 +++ src/meson.build | 4 ++-- test/meson.build | 4 +--- test/pdiff/meson.build | 2 -- util/cairo-fdr/meson.build | 1 - util/cairo-gobject/meson.build | 1 - util/cairo-missing/meson.build | 1 - util/cairo-script/meson.build | 4 ---- util/cairo-sphinx/meson.build | 3 +-- util/cairo-trace/meson.build | 2 +- 11 files changed, 8 insertions(+), 19 deletions(-) commit cd0082338e1fb2a4455f11523fd3b60fbcf29e15 Merge: 898021ba3 8f6cfe417 Author: afdw Date: Sat May 1 14:40:52 2021 +0000 Merge branch 'master' into 'svg-backend-work' # Conflicts: # src/cairo-gstate.c commit 8f6cfe41773be1764a0813e6bd8f97e18d5b8cd3 Merge: 4c4e6127f 58b192917 Author: Uli Schlachter Date: Fri Apr 30 12:12:22 2021 +0000 Merge branch 'ci-test-x11' into 'master' CI: Check test results for cairo-xcb and cairo-x11 See merge request cairo/cairo!165 commit 4c4e6127f45ce8b761acfbc2b1a0548a1535aa9d Merge: 64e1fd70e cb86c13b6 Author: Emmanuele Bassi Date: Thu Apr 29 09:18:07 2021 +0000 Merge branch 'jfkthame-master-patch-60864' into 'master' Don't leave the shm field uninitialized when building without shm support. See merge request cairo/cairo!170 commit cb86c13b626f098ce4e65072a375494993548ebe Author: Jonathan Kew Date: Thu Apr 29 08:52:31 2021 +0000 Don't leave the shm field uninitialized when building without shm support. This can result in reading an uninitialized value in draw_image_boxes() in cairo-xlib-render-compositor.c. src/cairo-xlib-surface-shm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 64e1fd70ec065567d0082bbc98523825aaa0a817 Merge: 47770fc2b efab74f5a Author: Uli Schlachter Date: Tue Apr 27 16:30:44 2021 +0000 Merge branch 'ebassi/warnings-fixes' into 'master' Avoid a bunch of compiler warnings See merge request cairo/cairo!166 commit 47770fc2b7df8d078ac6d421822e850927cddf7d Merge: 14385eeff 0bbb9de80 Author: Uli Schlachter Date: Tue Apr 27 16:24:29 2021 +0000 Merge branch 'ebassi/deprecations' into 'master' Use g_memdup2() with newer versions of GLib See merge request cairo/cairo!167 commit efab74f5a11ba2a5ececb5ffe48f5b86d945f3b7 Author: Emmanuele Bassi Date: Sun Apr 18 11:07:38 2021 +0100 Drop volatile from the GType registration The `volatile` is unnecessary, and newer versions of GLib and GCC will complain if you use it. util/cairo-gobject/cairo-gobject-structs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f39b795754681120c06f760362554d7e2b5c753 Author: Emmanuele Bassi Date: Sun Apr 18 11:12:42 2021 +0100 Define _GNU_SOURCE in order to use memmem The memmem() function is a GNU extension, which means we need to define _GNU_SOURCE in order to avoid a compiler warning about a missing declaration. meson.build | 2 ++ 1 file changed, 2 insertions(+) commit 0bbb9de8069fca5685568b9cf475da45da9fc554 Author: Emmanuele Bassi Date: Sun Apr 18 11:18:10 2021 +0100 Disable deprecation warnings from librsvg This is a test utility, we don't really care about deprecations. test/any2ppm.c | 1 + test/svg2png.c | 3 +++ 2 files changed, 4 insertions(+) commit b7d38e048fb44f60e3a4d0f9d49fdd21259afc4a Author: Emmanuele Bassi Date: Sun Apr 18 11:08:27 2021 +0100 Use g_memdup2() with newer versions of GLib The g_memdup() function has been deprecated, as it takes the size of the memory area as an unsigned integer. The g_memdup2() replacement uses the more appropriate size_t type, instead. util/cairo-gobject/cairo-gobject-structs.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 966b4a4e5fb487a2400fcb2a62b51a7e93913489 Author: Emmanuele Bassi Date: Sun Apr 18 11:17:38 2021 +0100 Handle new Cairo formats in test-trace We are missing RGB96F and RGBA128F. test/cairo-test-trace.c | 2 ++ 1 file changed, 2 insertions(+) commit 7027360c82f43fa5a84e55890d3fbaef49ba4764 Author: Emmanuele Bassi Date: Sun Apr 18 11:06:52 2021 +0100 Handle new Cairo formats in the XML surface We are missing RGB96F and RGBA128F. src/cairo-xml-surface.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 14385eeff3b9184c599614648b98458451b8db2b Merge: 816e7ac06 2d2f73bc3 Author: Uli Schlachter Date: Mon Apr 26 16:06:23 2021 +0000 Merge branch 'mac-tests' into 'master' Run the test suite on MacOS See merge request cairo/cairo!160 commit 816e7ac06f33f9fbc446297b601f1ffe2c63801b Merge: f125a457e 8d0274413 Author: Uli Schlachter Date: Mon Apr 26 16:04:23 2021 +0000 Merge branch 'fix-cairo-gstate-copy-transformed-pattern-comment' into 'master' Replace an outdated (after f0e2cd44) comment with clarification in _cairo_gstate_copy_transformed_pattern See merge request cairo/cairo!162 commit 8d0274413667039ee46a26a4b8abe1ae2bbd1c28 Author: Anton Danilkin Date: Sat Apr 24 14:55:19 2021 +0200 Replace an outdated (after f0e2cd44) comment with clarification in _cairo_gstate_copy_transformed_pattern src/cairo-gstate.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 58b1929173d60719aedfbc3709f1b948d266d45f Author: Uli Schlachter Date: Sun Apr 25 12:32:56 2021 +0200 script: Also ignore {xcb,xlib}-surface-source Signed-off-by: Uli Schlachter .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d3dfb7bcba78b4072552095871f647e90469f05 Author: Uli Schlachter Date: Sun Apr 25 11:05:59 2021 +0200 .gitlab-ci.yml: Ignore current X11 test failures Signed-off-by: Uli Schlachter .gitlab-ci.yml | 12 ++++++++++++ test/cairo-test-runner.c | 9 +++++++++ 2 files changed, 21 insertions(+) commit 845c1f2a9aa94f52fb89e92c4c2c2f82400332af Author: Uli Schlachter Date: Sun Apr 25 10:07:54 2021 +0200 CI: Run tests with an X11 server Running the test suite with an X11 server allows testing cairo-x11 and cairo-xcb. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f125a457eab5e6a8b1428389448c954bcc7d6d52 Merge: 3c00a849f d03b6c90a Author: Uli Schlachter Date: Sun Apr 25 07:26:19 2021 +0000 Merge branch 'fix-cairo-operator-bounded' into 'master' Make the _cairo_operator_bounded family of functions consistent See merge request cairo/cairo!163 commit 3c00a849f6f4e280e95bb21b6f6a3946cabf65af Merge: de2a71b23 f4a3236d1 Author: Uli Schlachter Date: Sun Apr 25 07:20:26 2021 +0000 Merge branch 'fix-cairo-status-is-error' into 'master' Add missing parentheses to _cairo_status_is_error and _cairo_int_status_is_error See merge request cairo/cairo!161 commit d03b6c90a7d652b8b8c6d84e9c230dc69c339d5d Author: Anton Danilkin Date: Sat Apr 24 14:57:47 2021 +0200 Make the _cairo_operator_bounded family of functions consistent src/cairo-misc.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit f4a3236d144e21f3cca3f2374b29ba907ffbd523 Author: Anton Danilkin Date: Sat Apr 24 14:50:30 2021 +0200 Add missing parentheses to _cairo_status_is_error and _cairo_int_status_is_error src/cairo-error-private.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 898021ba3953f1125e9eca42d59f7346ab33cc60 Author: Anton Danilkin Date: Sat Apr 24 14:36:14 2021 +0200 Simplify _cairo_hash_table_size src/cairo-hash.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 0cc63f5d49630d579d97cb22a7c39f1ea31c728e Merge: 9f44a2a1b de2a71b23 Author: afdw Date: Sat Apr 24 12:30:44 2021 +0000 Merge branch 'master' into 'svg-backend-work' # Conflicts: # src/cairo-malloc-private.h # src/cairo-svg-surface.c commit de2a71b230e0202292e5deae7e19a90139165a49 Merge: ec2933b06 0392dd783 Author: Uli Schlachter Date: Fri Apr 23 19:40:46 2021 +0000 Merge branch 'svg-ci' into 'master' Enable SVG in CI See merge request cairo/cairo!156 commit 2d2f73bc3cb664ceee722ba6305f97023a2eebfd Author: Uli Schlachter Date: Thu Apr 22 16:14:37 2021 +0200 Run the test suite on MacOS This adds the necessary commands to run the test suite on MacOS in CI and to also ignore the current failures. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 6 ++++++ test/cairo-test-runner.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+) commit ec2933b06e484a2f9c35b1b886a85e322adf7998 Merge: d4617e31b 4f4d89506 Author: Heiko Lewin Date: Tue Apr 20 12:35:17 2021 +0000 Merge branch 'wip/Jehan/subpixel-antialiasing' into 'master' src: do not override explicitly requested grayscale antialiasing. See merge request cairo/cairo!114 commit d4617e31bef2136309c208c1faed895a013deb0a Merge: 7de7d5759 f6a3f6d8a Author: Tim-Philipp Müller Date: Tue Apr 20 10:33:20 2021 +0000 Merge branch 'no-fontconfig-on-windows' into 'master' Don't build fontconfig on Windows See merge request cairo/cairo!159 commit f6a3f6d8add98bf5f15d6fbdc4cd887a0936b531 Author: Matthias Clasen Date: Mon Apr 19 11:49:31 2021 -0400 Don't build fontconfig on Windows mesons 'auto' is too eager to build things. Building fontconfig as a subproject on Windows is not the right thing, unless it was explictly requested. meson.build | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 0392dd783c563c655f7a83b315555f3756c3a512 Author: Uli Schlachter Date: Sun Apr 18 13:00:07 2021 +0200 Ignore create-for-stream failure with svg The create-for-stream test verifies that writing something to a file and writing it to an in-memory surface produces the same output. The test currently fails when the svg backend is tested with: TEST: create_for_stream TARGET: pdf RESULT: PASS svg: Stream based output differ from file output for output/create-for-stream.out.svg. TEST: create_for_stream TARGET: svg RESULT: FAIL I guess this is because svg uses unique IDs for surfaces, meaning that drawing two times the same thing in the same process can produce different outputs. However, this is just a guess and I didn't investigate further. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 1 + test/cairo-test-runner.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) commit 2f8b5bc7b202a00c19bfce732564c54df47e3010 Author: Uli Schlachter Date: Sun Apr 18 10:08:37 2021 +0200 Add hack to ignore a svg test crashes This adds a special hack to the test suite to ignore the crashes for self-copy and self-copy-overlap for the svg backend in CI. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 1 + test/cairo-test-runner.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) commit 0c9dacbc432abc98ffc5f0d7097821e330663e64 Author: Uli Schlachter Date: Sun Apr 18 09:32:44 2021 +0200 svg: Reject raster sources This hopefully fixes the raster-source test case crashing: cairo-svg-surface.c:2269: _cairo_svg_surface_emit_pattern: Assertion `!"reached"' failed. I cannot / did not test this change locally and rely on CI to tell me whether this works. Signed-off-by: Uli Schlachter src/cairo-svg-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ea171b132c442a2c972b22596a5911d7bf033a7 Author: Uli Schlachter Date: Sun Apr 18 08:40:17 2021 +0200 Ignore current svg failures in CI Signed-off-by: Uli Schlachter .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) commit ca3423a701a441425b336dadfb3901a6ff948e3b Author: Uli Schlachter Date: Sun Apr 18 08:18:49 2021 +0200 Install gtk2-devel on CI From config.log from CI: configure:27855: $PKG_CONFIG --exists --print-errors "$librsvg_DEPENDENCY gdk-2.0" Package gdk-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gdk-2.0.pc' to the PKG_CONFIG_PATH environment variable Package 'gdk-2.0', required by 'virtual:world', not found configure:27858: $? = 1 Package 'gdk-2.0', required by 'virtual:world', not found configure:27885: result: no configure:27921: WARNING: SVG backend will not be tested since librsvg >= 2.35.0 is not available According to Google, it seems like gtk2-devel is the right package to get gdk-2.0.pc. Thanks a lot to @tpm for explaining that I also have to change the TAG variable. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f8157ae751caeace9e8fdc9df4cc41e0593fd841 Author: Uli Schlachter Date: Sun Apr 18 08:01:09 2021 +0200 Add config.log to build artefacts This fail is not large, so doesn't "cost much", but it helps in figuring out build problems in CI like "what exactly is missing for the SVG backend?". Signed-off-by: Uli Schlachter .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) commit 7de7d57592370fbf625741526c689f747db15174 Merge: dfd543d01 a31c7395a Author: Heiko Lewin Date: Sat Apr 17 10:01:17 2021 +0000 Merge branch 'ci-make-test-succeeds' into 'master' CI: Actually run cairo-test-suite See merge request cairo/cairo!140 commit a31c7395a1ae0dd0cb01eac8fb72a07df955375a Author: Uli Schlachter Date: Sat Apr 17 10:01:17 2021 +0000 test-suite: Add a new mechanism for XFAILs This commit adds a new mechanism to mark tests as expected to fail via an environment variable. For example, if you expect the tests "foo" and "bar" to fail when run under image.argb32, you would set CAIRO_TEST_IGNORE_image_argb32=foo,bar The test suite then expects these tests to fail and treats this as xfail. If they do not fail, this is a failure on its own. This new feature is explicitly not documented much, because it is only used as a stopgap measure to make our CI more useful: Right now the test suite runs on CI, but the result is ignored. This new feature allows to mark the known failures as xfail without too much work. When the situation changes, this will be noticed as a new test suite failure. Thus, these environment variables to not run into the danger of still containing tests that were already fixed. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 15 ++++++- test/cairo-test-runner.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+), 2 deletions(-) commit dfd543d0134d366df6864b0ef4d4e491425ec2c9 Merge: c287fb3a1 67099a091 Author: Uli Schlachter Date: Sat Apr 17 07:06:06 2021 +0000 Merge branch 'fix-cairo-malloc' into 'master' Change int to size_t in the _cairo_malloc function family See merge request cairo/cairo!153 commit 9f44a2a1b63ca0b63299b2b3291c8942cb368793 Author: Anton Danilkin Date: Tue Apr 13 20:58:49 2021 +0200 Add a small padding around paints src/cairo-svg-surface.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 67099a091ec289b5190fbce4dd12ff710b8706a0 Author: Anton Danilkin Date: Tue Apr 13 19:10:40 2021 +0200 Change int to size_t in the _cairo_malloc function family This should allow to use them for allocating large amounts of memory. Also use explicit checks for zeros to not make the compiler think that it is a boolean context. src/cairo-malloc-private.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 43a602b18561631b992944d2440c929e225084f6 Author: Anton Danilkin Date: Tue Apr 13 18:31:23 2021 +0200 Skip the color to alpha filter when possible src/cairo-svg-surface.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit 69d90f3e62902fd5e5f8a9bd50711b3da743839e Author: Anton Danilkin Date: Tue Apr 13 18:03:40 2021 +0200 Implement attempting to recognize a common pattern for a bitmap font and extract the original glyph image from it src/cairo-svg-surface.c | 66 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 55 insertions(+), 11 deletions(-) commit 982c37f5446965c4bcd5754e8b89bca5284469c8 Author: Anton Danilkin Date: Tue Apr 13 11:49:32 2021 +0200 Fix warnings and pipeline failure src/cairo-svg-surface-private.h | 19 ++++++++++++++++--- src/cairo-svg-surface.c | 18 +++++------------- 2 files changed, 21 insertions(+), 16 deletions(-) commit 3cb6377c08182114f15e1fd0e358fe4e92fb8b90 Author: Anton Danilkin Date: Tue Apr 13 04:27:26 2021 +0200 Revert "Fix filter being used on the use element causing the content to be clipped" This reverts commit 2a8672d06ef98b5375c6eee825791c2797bef078. src/cairo-svg-surface.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 90aa943555f1861583138b88694012bb93da7b0a Author: Anton Danilkin Date: Tue Apr 13 04:24:43 2021 +0200 Add support for PDF Type 3 fonts src/cairo-svg-surface.c | 73 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 59 insertions(+), 14 deletions(-) commit 1c1bceb581941b304a7ed8ff9fd3519884250633 Author: Anton Danilkin Date: Tue Apr 13 02:58:43 2021 +0200 Emit bitmap glyph data as images instead of as a bunch of squares, as this results in smaller file size and better quality, allowing the use of shades of gray src/cairo-svg-surface.c | 85 ++++++++++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 36 deletions(-) commit 1fe3c5571253a5b6c7808981babff09af8fbb3ed Author: Anton Danilkin Date: Mon Apr 12 18:49:03 2021 +0200 Do not emit empty glyph paths src/cairo-svg-surface.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 2a8672d06ef98b5375c6eee825791c2797bef078 Author: Anton Danilkin Date: Mon Apr 12 11:55:56 2021 +0200 Fix filter being used on the use element causing the content to be clipped src/cairo-svg-surface.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit c287fb3a1f3e9a19abf062ac773f4c6a5118100b Merge: 277a1daec cd2b91c62 Author: Tim-Philipp Müller Date: Mon Apr 12 08:30:57 2021 +0000 Merge branch 'win32-atomic' into 'master' atomic: Add support for WIN32 atomic operations See merge request cairo/cairo!151 commit 87d5c9e8d1cb46415f3e1e7b24fff87a6e083b9a Author: Anton Danilkin Date: Mon Apr 12 00:17:51 2021 +0200 Add missing include src/cairo-svg-surface-private.h | 2 ++ 1 file changed, 2 insertions(+) commit 5932084df3b9edd4472682f728a57bdb0b511950 Author: Anton Danilkin Date: Mon Apr 12 00:00:45 2021 +0200 Remove _cairo_memory_stream_to_string src/cairo-output-stream-private.h | 3 --- src/cairo-output-stream.c | 10 ---------- 2 files changed, 13 deletions(-) commit 917f366ad1d6da84221bb9ee1c3a9892cca98304 Author: Anton Danilkin Date: Sun Apr 11 23:41:59 2021 +0200 Add a test for #431 test/Makefile.sources | 1 + test/bug-431.c | 64 ++++++++++++++++++++++++ test/meson.build | 1 + test/reference/bug-431.ref.png | Bin 0 -> 16314 bytes test/reference/operator-www.svg11.rgb24.ref.png | Bin 39557 -> 0 bytes 5 files changed, 66 insertions(+) commit 39dabd34fee8ac07538e6567a105e9773e6c7acd Author: Anton Danilkin Date: Sun Apr 11 23:28:41 2021 +0200 Mark CAIRO_PATTERN_TYPE_MESH as unsupported and impose a limit on recording surfaces depth src/cairo-svg-surface.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) commit c91afd777a8260931d2c19b9c19679cf3ae6bfe9 Author: Anton Danilkin Date: Sun Apr 11 22:42:23 2021 +0200 Do not use parent_matrix in the mask operation src/cairo-svg-surface.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit d44bb67c7ffd0d42a29ecb37de0de4b768131ab8 Author: Anton Danilkin Date: Sun Apr 11 22:16:27 2021 +0200 Fix clip-rule being emitted on the wrong elements src/cairo-svg-surface.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 580e9b9be6f53fb63082a6c2e97f74219a4c9e54 Author: Anton Danilkin Date: Sun Apr 11 21:50:45 2021 +0200 Add my name to the header of cairo-svg-surface.c src/cairo-svg-surface.c | 2 ++ 1 file changed, 2 insertions(+) commit 500b39e98fa17aaf89a805aa4ce73c5f334f6bd9 Author: Anton Danilkin Date: Sun Apr 11 21:49:47 2021 +0200 Move cairo_svg_surface_t to cairo-svg-surface.c boilerplate/cairo-boilerplate-svg.c | 8 ++----- src/cairo-svg-surface-private.h | 39 +++---------------------------- src/cairo-svg-surface.c | 46 +++++++++++++++++++++++++++++++++---- 3 files changed, 47 insertions(+), 46 deletions(-) commit ceae137ba6930c0415b64918e74750d1cfd162cb Author: Anton Danilkin Date: Sun Apr 11 21:32:49 2021 +0200 Finish implementing correct paints in transformed recording patterns src/cairo-svg-surface-private.h | 1 + src/cairo-svg-surface.c | 231 +++++++++++++++++--------- test/Makefile.sources | 1 + test/meson.build | 1 + test/record-transform-paint.c | 64 +++++++ test/reference/record-transform-paint.ref.png | Bin 0 -> 2187 bytes 6 files changed, 223 insertions(+), 75 deletions(-) commit c5b24a3e12815fce328997a9b5825d732329cc4b Author: Anton Danilkin Date: Sun Apr 11 19:48:50 2021 +0200 Start implementing correct paints in transformed recording patterns src/cairo-hash-private.h | 3 + src/cairo-hash.c | 21 ++ src/cairo-svg-surface-private.h | 16 +- src/cairo-svg-surface.c | 440 ++++++++++++++++++++++++++-------------- 4 files changed, 314 insertions(+), 166 deletions(-) commit c2ea2848fd52c23023f31f35f1a16693f8b50313 Author: Anton Danilkin Date: Sun Apr 11 13:05:59 2021 +0200 Simplify _cairo_svg_surface_emit_composite_surface_pattern src/cairo-svg-surface.c | 107 +++++++++++++++++++++++------------------------- 1 file changed, 52 insertions(+), 55 deletions(-) commit 89eda6f65035af676f8028a1ecfab6e376a757a0 Author: Anton Danilkin Date: Sat Apr 10 23:45:26 2021 +0200 Simplify ignoring of statuses src/cairo-svg-surface.c | 123 ++++++++++++++++++------------------------------ 1 file changed, 47 insertions(+), 76 deletions(-) commit cf0023d7cef4b0bb82020d496de40d36b8503973 Author: Anton Danilkin Date: Sat Apr 10 23:39:13 2021 +0200 Simplify SVG document generation src/cairo-svg-surface.c | 123 ++++++++++++++++++++---------------------------- 1 file changed, 52 insertions(+), 71 deletions(-) commit 733c38b9f494fe64d1314e5d5cc5da4212a5bb9b Author: Anton Danilkin Date: Sat Apr 10 23:08:06 2021 +0200 Fix and clarify _cairo_svg_surface_do_operator src/cairo-svg-surface.c | 436 ++++++++++++++++++++++++++---------------------- 1 file changed, 240 insertions(+), 196 deletions(-) commit b5baac736f923bcabd59b5cb160eed7029feffef Author: Anton Danilkin Date: Sat Apr 10 20:13:10 2021 +0200 Do not create temporary single-color patterns. Also, do not try to support CAIRO_CONTENT_COLOR src/cairo-svg-surface.c | 61 ++++++++++++------------------------------------- 1 file changed, 14 insertions(+), 47 deletions(-) commit d88ac55b9ffb04cd5dd6ae76c3939f767ced9bbf Author: Anton Danilkin Date: Sat Apr 10 19:49:50 2021 +0200 Remove SVG 1.2 and CAIRO_CONTENT_COLOR SVG boilerplate targets boilerplate/cairo-boilerplate-svg.c | 57 ------------------------------------- 1 file changed, 57 deletions(-) commit 9ac707374fa3fc6029c4c33e2193fca0b50e4109 Author: Anton Danilkin Date: Sat Apr 10 18:39:18 2021 +0200 Fix problems with radial gradients src/cairo-svg-surface.c | 235 +++++++++++++++++++++--------------------------- 1 file changed, 104 insertions(+), 131 deletions(-) commit d397ab6d10123e6bbcf9ae446cc8ffd981f18222 Author: Anton Danilkin Date: Sat Apr 10 00:45:20 2021 +0200 Change the default SVG unit to user unit src/cairo-svg-surface.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f85834a1f5760a6bbec57fd8d24f35653fd6f2de Author: Anton Danilkin Date: Sat Apr 10 00:32:30 2021 +0200 Do not use the style attribute src/cairo-svg-surface.c | 571 ++++++++++++++++++++++++------------------------ 1 file changed, 282 insertions(+), 289 deletions(-) commit 71eef9c8bc21a5f9746dd7be411257fd3d9f20cc Author: Anton Danilkin Date: Fri Apr 9 21:19:47 2021 +0200 Implement the rest of the operators src/cairo-svg-surface.c | 353 +++++++++++++++--------- test/operator-www.c | 3 + test/reference/operator-www.image.rgb24.ref.png | Bin 0 -> 39557 bytes test/reference/operator-www.ref.png | Bin 0 -> 39796 bytes test/reference/operator-www.svg11.rgb24.ref.png | Bin 0 -> 39557 bytes 5 files changed, 223 insertions(+), 133 deletions(-) commit 0df89ca8d8472dbb49e0613d6bcc7acbe9d00ad0 Author: Anton Danilkin Date: Fri Apr 9 19:42:59 2021 +0200 Implement most of the non-blending operators src/cairo-svg-surface.c | 242 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 211 insertions(+), 31 deletions(-) commit e728eb43de3476234382cd770157927658daddb6 Author: Anton Danilkin Date: Fri Apr 9 15:34:45 2021 +0200 Implement the in operator src/cairo-svg-surface.c | 162 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 155 insertions(+), 7 deletions(-) commit 961db5b846a551a040895ca521732b396f747765 Author: Anton Danilkin Date: Fri Apr 9 10:43:52 2021 +0200 Implement operators for the rest of operations src/cairo-svg-surface.c | 333 +++++++++++++++++++++++++++++------------------- 1 file changed, 204 insertions(+), 129 deletions(-) commit 1a03d883ab1c965efcbd4782c7783e4629ecf779 Author: Anton Danilkin Date: Fri Apr 9 09:33:50 2021 +0200 Implement operators for the mask operation src/cairo-svg-surface.c | 287 +++++++++++++++++++++++++++++------------------- 1 file changed, 174 insertions(+), 113 deletions(-) commit a89960a67cdb239b17bb127f5cf08bb787307445 Author: Anton Danilkin Date: Fri Apr 9 04:18:42 2021 +0200 Add support for the source and clear operators for the paint operation src/cairo-svg-surface-private.h | 1 + src/cairo-svg-surface.c | 392 +++++++++++++++++++++++----------------- 2 files changed, 226 insertions(+), 167 deletions(-) commit f6f73ba83607a2d2ee20b550803b2a2de001c515 Author: Anton Danilkin Date: Fri Apr 9 02:13:28 2021 +0200 Add a layer of indiraction to calls to the clipper src/cairo-svg-surface.c | 92 ++++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 47 deletions(-) commit daeb9736e9e25a88d9b9f46fca7fe7d2699915ca Author: Anton Danilkin Date: Fri Apr 9 01:26:29 2021 +0200 Update the analyze mode of operations src/cairo-svg-surface.c | 411 +++++++++++++++++++++--------------------------- 1 file changed, 183 insertions(+), 228 deletions(-) commit 2a9e189410326d08989ce99e0f5ad99b821ad3ed Author: Anton Danilkin Date: Fri Apr 9 00:00:28 2021 +0200 Remove the use of extra_attributes src/cairo-svg-surface.c | 85 +++++++++++++++---------------------------------- 1 file changed, 26 insertions(+), 59 deletions(-) commit d59c7fb71f18d22e368494278047716b5293100d Author: Anton Danilkin Date: Thu Apr 8 23:48:51 2021 +0200 Remove the use of discard_filter src/cairo-svg-surface.c | 72 ++++++++++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 27 deletions(-) commit 0cddf4769c73073f1cf9569791063de3287a6802 Author: Anton Danilkin Date: Thu Apr 8 22:43:55 2021 +0200 Introduce _cairo_svg_surface_svg_clip_or_svg_mask_should_be_used src/cairo-misc.c | 14 ++++++-------- src/cairo-svg-surface.c | 39 ++++++++++++++++++--------------------- 2 files changed, 24 insertions(+), 29 deletions(-) commit 7a21a930e9da8a43d9a32071b90b84184fc01451 Author: Anton Danilkin Date: Thu Apr 8 21:59:01 2021 +0200 Add warning supression in one place and remove them in others src/cairo-malloc-private.h | 2 +- src/cairo-svg-surface.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) commit 3b6ea32854383e52a8ebe548b3ea11d654ba6780 Author: Anton Danilkin Date: Thu Apr 8 21:47:32 2021 +0200 Do not check the status after creating a memory stream As we do not check the status after _cairo_output_stream_printf and _cairo_memory_stream_copy (which are more common operations) anyway. This simplifies the code, but keeps it correct, as the status will be propagated anyway, just a bit later. src/cairo-error-private.h | 4 ++-- src/cairo-svg-surface.c | 39 +-------------------------------------- 2 files changed, 3 insertions(+), 40 deletions(-) commit 170fa0f9bb66198bb2f6aeb9d29cc7a5234a1183 Author: Anton Danilkin Date: Thu Apr 8 21:27:24 2021 +0200 Fix using signed types where unsigned ones were needed src/cairo-image-info-private.h | 2 +- src/cairo-image-info.c | 2 +- src/cairo-svg-surface.c | 19 +++++++++---------- 3 files changed, 11 insertions(+), 12 deletions(-) commit 7ade55ac5b95a989e81d3bb58e34472d76d01a62 Author: Anton Danilkin Date: Thu Apr 8 01:33:43 2021 +0200 Add new SVG filters system src/cairo-svg-surface.c | 98 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 65 insertions(+), 33 deletions(-) commit b340dc19f2a962071291358b861898650cd1b075 Author: Anton Danilkin Date: Thu Apr 8 01:01:08 2021 +0200 Fix emitting black background for color-only non-bounded SVG surfaces src/cairo-svg-surface.c | 50 +++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 22 deletions(-) commit fa5179e9fd7362692f8fc421f4977dc18924c515 Author: Anton Danilkin Date: Thu Apr 8 00:56:19 2021 +0200 Add a test with operator samples from https://cairographics.org/operators/ test/Makefile.sources | 1 + test/meson.build | 1 + test/operator-www.c | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 169 insertions(+) commit 170f8812fb0b186ea705b23e3cb794a9323c229f Author: Anton Danilkin Date: Tue Apr 6 18:20:49 2021 +0200 Add a test for #361 test/Makefile.sources | 1 + test/bug-361.c | 111 +++++++++++++++++++++++++++++++++++++++++ test/meson.build | 1 + test/reference/bug-361.ref.png | Bin 0 -> 587 bytes 4 files changed, 113 insertions(+) commit 9563d6b66169785de215e7b4291a137c0b0ce06d Author: Anton Danilkin Date: Tue Apr 6 18:20:30 2021 +0200 Ignore .idea, compile_commands.json and /build .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit 18c0196414ede7137886a588f95af99b5591622b Author: Anton Danilkin Date: Fri Nov 13 19:23:37 2020 +0100 Fix generating syntactically invalid SVG files src/cairo-svg-surface.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 8c08f499bd52d79d0ee13be5050d134e97e2211b Author: Anton Danilkin Date: Fri Nov 13 17:23:13 2020 +0100 Fix problems in the SVG backend related to outputting surfaces and patterns Now the SVG surface should work correctly work with bounded and unbounded image (-like) and recording surfaces with NONE and REPEAT extends as source for all operations. Fill or stroke with an unbounded surface as source now means using clip or mask respectively. Fix using unitialized memory in the SVG surface. Also fix unintialized memory and working with offsetted images in the recording surface. src/cairo-gstate.c | 15 +- src/cairo-output-stream-private.h | 3 + src/cairo-output-stream.c | 10 ++ src/cairo-recording-surface.c | 4 + src/cairo-svg-surface-private.h | 2 - src/cairo-svg-surface.c | 303 ++++++++++++++++++++++++++++---------- 6 files changed, 260 insertions(+), 77 deletions(-) commit 277a1daec80cb6cf7bfb0e200cf78e7842cb2f82 Merge: 26663cf3b 1484cfa55 Author: Heiko Lewin Date: Sun Apr 11 16:35:03 2021 +0000 Merge branch 'type1_find_segments_bounds_check' into 'master' Fix out of bounds access in cairo_type1_font_subset_find_segments See merge request cairo/cairo!146 commit 1484cfa55146cf6c77f8ad60911f999ead0c12ff Author: Uli Schlachter Date: Sun Apr 11 16:35:02 2021 +0000 Fix out of bounds access in cairo_type1_font_subset_find_segments This function parses some raw font data and it trusts the font to be well-formed. This means that a font can just say "this segment is a gigabyte large" and the code will happily jump ahead in memory. Bad things then happen in practice. Fix this by adding lots of bounds check. Also, an existing bounds check makes sure we are still before the end of the data, but then happily reads the next six bytes. Fix this by making sure we actually have six bytes of data. No regression test since the last few times I tried to do this for font issues, I ended up with a large/huge blob of font data. Too large for the test suite. Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27969 Signed-off-by: Uli Schlachter src/cairo-type1-subset.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit 26663cf3be1d7f67b49aa02428d7e303b7286f98 Merge: 1904d7bf3 3ca8a46ca Author: Uli Schlachter Date: Sun Apr 11 05:37:49 2021 +0000 Merge branch 'fix_obvious_ub' into 'master' Fix undefined left-shifts See merge request cairo/cairo!149 commit 3ca8a46cafec95965d8d4fa3657dc95965488c6c Author: Heiko Lewin Date: Sun Apr 11 02:07:10 2021 +0200 Minor corrections .gitignore | 2 -- src/cairo-box-inline.h | 2 +- src/cairo-image-compositor.c | 2 +- src/cairo-xlib-render-compositor.c | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) commit cd2b91c62ea74f6448a8a5cff5dd316f8e692e97 Author: Seungha Yang Date: Sun Apr 4 15:52:15 2021 +0900 atomic: Add support for WIN32 atomic operations Windows provides atomic operation APIs so use it src/cairo-atomic-private.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit 1904d7bf35099f775d68cb7203a34ac7a4e72514 Merge: 44f808fce d2a37ba60 Author: Uli Schlachter Date: Fri Apr 2 13:43:39 2021 +0000 Merge branch 'fix-467' into 'master' Rename cairo_lines_compare_at_y into _cairo_lines_compare_at_y and fix syntax Closes #467 See merge request cairo/cairo!150 commit d2a37ba60e042b72b3db0bf7e314a2774bc5a232 Author: Marc Jeanmougin Date: Mon Mar 29 12:20:31 2021 +0200 Rename cairo_lines_compare_at_y into _cairo_lines_compare_at_y and fix syntax Fixes https://gitlab.freedesktop.org/cairo/cairo/-/issues/467 src/cairo-bentley-ottmann.c | 2 +- src/cairo-line-private.h | 2 +- src/cairo-line.c | 3 ++- src/cairo-traps.c | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) commit 753ea90ac11a74f656b36378f20ed9895bc1c9a0 Author: Uli Schlachter Date: Sat Feb 6 16:29:00 2021 +0100 Add a test case for commit d07fb410568423 Signed-off-by: Uli Schlachter test/Makefile.sources | 1 + test/meson.build | 1 + test/record-write-png.c | 136 ++++++++++++++++++++++++++++++++ test/reference/record-write-png.ref.png | Bin 0 -> 101 bytes 4 files changed, 138 insertions(+) commit 518ba137794243d1024634449a3e07f72b7b888e Author: Heiko Lewin Date: Wed Mar 31 12:20:34 2021 +0200 Fix undefined left-shifts .gitignore | 2 ++ src/cairo-base85-stream.c | 2 +- src/cairo-beos-surface.cpp | 2 +- src/cairo-box-inline.h | 2 +- src/cairo-cff-subset.c | 2 +- src/cairo-gl-gradient.c | 6 +++--- src/cairo-gl-shaders.c | 2 +- src/cairo-image-compositor.c | 4 ++-- src/cairo-image-mask-compositor.c | 2 +- src/cairo-png.c | 4 ++-- src/cairo-truetype-subset-private.h | 2 +- src/cairo-type1-subset.c | 8 ++++---- src/cairo-vg-surface.c | 2 +- src/cairo-xcb-surface-render.c | 2 +- src/cairo-xlib-render-compositor.c | 2 +- src/cairo-xlib-source.c | 4 ++-- src/cairo-xlib-surface.c | 2 +- src/cairoint.h | 2 +- src/drm/cairo-drm-i915-private.h | 4 ++-- src/drm/cairo-drm-i915-shader.c | 4 ++-- src/drm/cairo-drm-i965-shader.c | 2 +- src/win32/cairo-win32-font.c | 2 +- 22 files changed, 33 insertions(+), 31 deletions(-) commit 44f808fce9f437e14f2b0ef4e1583def8ab578ae Merge: 33cce5dc3 e5b9d96f2 Author: Uli Schlachter Date: Thu Mar 25 15:51:32 2021 +0000 Merge branch 'use-after-scope' into 'master' Avoid a use-after-scope Closes #453 See merge request cairo/cairo!143 commit 33cce5dc376a7138870a3c9dc56e5a92d973621c Merge: c48ea2737 2f25fa68c Author: Uli Schlachter Date: Thu Mar 25 15:51:13 2021 +0000 Merge branch 'pdf-mime-data' into 'master' "Fix" the pdf-mime-data test See merge request cairo/cairo!142 commit c48ea2737c0b7a5c46ea3256b5516fe0d2be62a0 Merge: 5090dc3f4 57068e62a Author: Uli Schlachter Date: Thu Mar 25 15:50:44 2021 +0000 Merge branch 'serial-test-harness' into 'master' Use the serial automake test harness See merge request cairo/cairo!138 commit 5090dc3f4af6ff7a47f2da6162316e7c3e8962d6 Merge: f5a4ec8ad 446d3972e Author: Uli Schlachter Date: Thu Mar 25 15:50:22 2021 +0000 Merge branch 'flush-in-tests' into 'master' test suite: fflush() before fork() See merge request cairo/cairo!139 commit f5a4ec8adabaa5429bc8fc2e98d4cdb314208969 Merge: 104dfd8b0 433d9eb10 Author: Uli Schlachter Date: Thu Mar 25 15:49:50 2021 +0000 Merge branch 'mime-unique-id' into 'master' Fix the mime-unique-id test for me See merge request cairo/cairo!141 commit 104dfd8b04908e1595dbdb40cb45a5d32e357e73 Merge: f604b4ba9 b40b1afae Author: Tim-Philipp Müller Date: Mon Mar 22 11:22:09 2021 +0000 Merge branch 'ci-bump-windows-image' into 'master' ci: bump windows image to latest version to fix github ssl certificate issues See merge request cairo/cairo!148 commit b40b1afaeccaff8bce4003c8b6ef196b904299ed Author: Tim-Philipp Müller Date: Sat Mar 20 15:58:02 2021 +0000 ci: bump windows image to latest version to fix github ssl certificate issues .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f604b4ba9250d584fcd0cc7cf1cf1e58ab692be7 Merge: b718dae71 2af4412aa Author: Tim-Philipp Müller Date: Wed Mar 10 16:57:08 2021 +0000 Merge branch 'gyf-table-leak' into 'master' Fix a leak in an error path See merge request cairo/cairo!144 commit b718dae717fc0920eeaf16cfc226af6fe15fac27 Merge: 7788000be ca478e032 Author: Tim-Philipp Müller Date: Tue Mar 9 19:08:29 2021 +0000 Merge branch 'meson-make-cairo-trace-executable' into 'master' meson: make cairo-trace executable Closes #462 See merge request cairo/cairo!145 commit ca478e03270868d9380f7372df25a0f3357430a4 Author: Tim-Philipp Müller Date: Tue Mar 9 10:59:57 2021 +0000 meson: make cairo-trace executable Install with exec flag set and make sure tool is executable in build directory as well (by making the input file in the source directory executable). Fixes #462 util/cairo-trace/cairo-trace.in | 0 util/cairo-trace/meson.build | 1 + 2 files changed, 1 insertion(+) commit 2af4412aa3702c88da21c1265d9342a46190e078 Author: Uli Schlachter Date: Tue Mar 9 11:14:09 2021 +0100 Fix a leak in an error path Tested with valgrind. Before this patch, I got the following "definitely lost" entry, which is gone afterwards: 94,416 bytes in 1 blocks are definitely lost in loss record 427 of 427 at 0x483877F: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x4B053F8: cairo_truetype_font_write_glyf_table (cairo-truetype-subset.c:625) by 0x4B06219: cairo_truetype_font_generate (cairo-truetype-subset.c:991) by 0x4B06917: cairo_truetype_subset_init_internal (cairo-truetype-subset.c:1159) by 0x4B06D72: _cairo_truetype_subset_init_pdf (cairo-truetype-subset.c:1255) by 0x4B6B113: _cairo_pdf_surface_emit_truetype_font_subset (cairo-pdf-surface.c:5892) by 0x4B6C2AD: _cairo_pdf_surface_emit_unscaled_font_subset (cairo-pdf-surface.c:6366) by 0x4B02FC7: _cairo_sub_font_collect (cairo-scaled-font-subsets.c:741) by 0x4B03A7A: _cairo_scaled_font_subsets_foreach_internal (cairo-scaled-font-subsets.c:1062) by 0x4B03B21: _cairo_scaled_font_subsets_foreach_unscaled (cairo-scaled-font-subsets.c:1090) by 0x4B6C3ED: _cairo_pdf_surface_emit_font_subsets (cairo-pdf-surface.c:6412) by 0x4B62B1A: _cairo_pdf_surface_finish (cairo-pdf-surface.c:2222) To reproduce, run the test case from the below link. Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28023 Signed-off-by: Uli Schlachter src/cairo-truetype-subset.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e5b9d96f22d5a0bdb27d0aafdd7f95d1d9ffbd67 Author: Uli Schlachter Date: Tue Mar 9 07:53:50 2021 +0100 Avoid a use-after-scope This is the same fix as commit b345be5afee, but in a different place in the same file. Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/453 Signed-off-by: Uli Schlachter src/cairo-spans-compositor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f25fa68c0d59c3ed3577e0e85b745985467c6fd Author: Uli Schlachter Date: Mon Mar 8 17:31:37 2021 +0100 test/pdf-mime-data.c: Check for pdfimages Currently, the pdf-mime-data check just fails for me with the following output: sh: 1: pdfimages: not found pdf-mime-data: FAIL pdf-mime-data.log contains: pdfimages failed with exit status 32512 Since I do not have pdfimages installed... yeah. This commit "fixes" that problem by skipping the test if pdfimages is not available. No idea if it would pass if it were available, but I do not feel like installing pdfimages just to test. Signed-off-by: Uli Schlachter test/pdf-mime-data.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 2a8d90c6fce458151f7bd3982fcaa964c4f72195 Author: Uli Schlachter Date: Mon Mar 8 17:27:52 2021 +0100 pdf-mime-data: Fix for out-of-tree builds This makes the code use the existing helper for loading PNGs that also considers the $srcdir environment variable. This makes it find the file in out of tree builds. Signed-off-by: Uli Schlachter test/pdf-mime-data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0c64c216aaf44d476637879d998fef96f0164762 Author: Uli Schlachter Date: Mon Mar 8 17:26:50 2021 +0100 pdf-mime-data: Fix error checking I am not quite sure, but an if for "ignore this error if something failed" seems wrong. Either this should have compared against status2 or checked for success. This commit fixes the code for the latter. Signed-off-by: Uli Schlachter test/pdf-mime-data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 433d9eb10937b2025c3dd2b63988bb01d470cc95 Author: Uli Schlachter Date: Mon Mar 8 16:30:33 2021 +0100 Update the PDF size limit in mime-unique-id The test mime-unique-id checks that some images are only embedded once in a PDF. It does so by checking if the file size is within some expected bounds. However, the test fails for me because the file is too small. Yes, too *small*. Fix this by updating the test to expect my current file size. Signed-off-by: Uli Schlachter test/mime-unique-id.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0fd2197e2b3e7deb1e5e1014e907dbeddac6f481 Author: Uli Schlachter Date: Mon Mar 8 16:28:51 2021 +0100 test/mime-unique-id: Fix for out-of-tree builds Instead of failing because it did not find an image, this now fails for me since the PDF is too small (???). This new code is modelled after cairo_test_create_surface_from_png(). Signed-off-by: Uli Schlachter test/mime-unique-id.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit 446d3972e53dbbaf7dbd47768cbc189a98df1ba5 Author: Uli Schlachter Date: Mon Mar 8 13:28:41 2021 +0100 test suite: fflush() before fork() Forking a process also duplicates the buffers of FILE*s. Thus, if there is pending data, both the parent and the child process will write things. This is seldom a good idea. This issue was not noticed so far since by default the test suite already calls fflush() a lot. However, when stdout and stderr are both not a tty (according to isatty(1) and isatty(2)), these flushes are skipped. The result is that the child process repeat the full output from the test suite starting with "Compiled against cairo 1.17.4, running on 1.17.4." To reproduce this problem run: ./cairo-test-suite 2>&1 | cat Fix this by flushing all the files that I managed to find before fork(). Thanks to Pekka Paalanen for helping me figure this out. Signed-off-by: Uli Schlachter test/cairo-test-runner.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 7788000be0551c5cc77057db775f316f9f0e7f29 Merge: 71ece6d14 1bec56ea8 Author: Uli Schlachter Date: Fri Mar 5 08:08:55 2021 +0000 Merge branch 'meson-allow-skipping-of-run-check-for-ipc-rmid-deferred-release-in-cross-build' into 'master' meson: allow skipping of run check for IPC_RMID_DEFERRED_RELEASE Closes #408 See merge request cairo/cairo!134 commit 71ece6d14909aa795aa9f424c8411694c3136eda Merge: d847f1d62 921cc3e57 Author: Tim-Philipp Müller Date: Thu Mar 4 11:09:29 2021 +0000 Merge branch 'alatiera/exclude-artifacts' into 'master' ci: cleanup the autotools artifacts a bit Closes #465 See merge request cairo/cairo!137 commit 921cc3e57adc2e71bb19bd81cc1d5b9b0f7a6b36 Author: Jordan Petridis Date: Thu Mar 4 03:56:12 2021 +0200 ci: cleanup the autotools artifacts a bit Exclude .trace and .cs file from being exported. This brings down the generated artifacts size to 73mb. Close #465 .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) commit 57068e62a5b1bf1f45a0b05858d0b8fa95730c0b Author: Uli Schlachter Date: Thu Mar 4 08:10:10 2021 +0100 Use the serial automake test harness Once upon a time, automake had one way to run tests. Apparently this is (nowadays?) called the serial test harness. Then, in some release (I do not remember which one), the parallel test harness became the default. The parallel harness runs all tests in parallel, but does not (really) show the test output, but instead has output redirected to files. Sort of. I did not find the result of my printf() anywhere. The automake docs strongly discourage using the serial test harness [0], but do not really say why. For cairo, I do not see problems: We have some quick, small checks (e.g. is cairo_public used where needed in the public headers). And then there is the big, heavy-weight test suite (cairo-test-suite). Thus, running these things in parallel has basically no benefits. Additionally, cairo-test-suite takes really, really long. Not seeing any output while it is running is annoying. Failing to find the output even in files is bad. Thus, since I do not see any benefits and only downsides to the parallel test harness, this commit switches to the serial one. [0]: https://www.gnu.org/software/automake/manual/html_node/Serial-Test-Harness.html Signed-off-by: Uli Schlachter configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d847f1d6219b74b544b6a4438ec49ddbeb6b665b Merge: 553c19df1 55a595174 Author: Tim-Philipp Müller Date: Mon Mar 1 14:10:04 2021 +0000 Merge branch 'spectre-dep' into 'master' meson: Move libspectre to test_deps Closes #425 See merge request cairo/cairo!135 commit 55a5951742ca5a1e90d1e53aeb46ff346e33b76f Author: Uli Schlachter Date: Mon Mar 1 14:06:02 2021 +0100 meson: Move libspectre to test_deps libspectre is only used for ps tests. Adding it to "deps" needlessly makes it show up in cairo.pc's Requires.private. Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/425 Signed-off-by: Uli Schlachter meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bec56ea8a931e1ae1c74cc740134497ec365267 Author: Tim-Philipp Müller Date: Thu Feb 25 10:52:45 2021 +0000 meson: allow skipping of run check for IPC_RMID_DEFERRED_RELEASE The run check is particularly annoying in cross-compile scenarios, so allow bypassing the check by having the user provide the value via a cross file or native file: [properties] ipc_rmid_deferred_release = true Closes #408 meson.build | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) commit 553c19df16bbc42e8e3dab04bd5f335600b717f4 Merge: 8d2f3f4af 3468c67fe Author: Uli Schlachter Date: Thu Feb 25 06:57:31 2021 +0000 Merge branch 'meson-add-option-to-disable-xlib-xcb' into 'master' meson: add xlib-xcb option and disable by default Closes #438 See merge request cairo/cairo!132 commit 3468c67fe91f0c37e0ec5d335082653a6fa609b6 Author: Jan Alexander Steffens (heftig) Date: Thu Feb 25 01:27:10 2021 +0000 meson: add xlib-xcb option and disable by default Just like autotools does. Closes #438. meson.build | 3 +-- meson_options.txt | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) commit 8d2f3f4afcbf55e58328fd8a4b1f4840737a7a4f Merge: 784be5d85 9732f4e80 Author: Uli Schlachter Date: Wed Feb 24 15:14:45 2021 +0000 Merge branch 'meson-force-utf8-file-encoding-in-scripts' into 'master' meson: use encoding=utf-8 when reading/writing files in helper script See merge request cairo/cairo!129 commit 784be5d859b75b58909752d639d4f43b35556b7b Merge: d85738b39 f7ac4181d Author: Tim-Philipp Müller Date: Wed Feb 24 14:27:54 2021 +0000 Merge branch 'alatiera/cairo-header' into 'master' meson: declare dependancy on libcairo_dep for overrides See merge request cairo/cairo!130 commit f7ac4181d683b0707c89cfd5a4c3e33b1e313068 Author: Tim-Philipp Müller Date: Wed Feb 24 02:57:37 2021 +0200 meson: declare dependancy on libcairo_dep for overrides When declaring a dependency on a feature, say `dependency('cairo-png')` the resulting object did not depend on cairo and thus was missing basic things like, `cairo.h` from its include dir. Make it so overrides do in fact include the basic cairo functionality needed for them to work. Related: https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/236 meson.build | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9732f4e80f906fab85b97ae55ee44bfd3ee4945e Author: Tim-Philipp Müller Date: Tue Feb 23 23:42:11 2021 +0000 meson: use encoding=utf-8 when reading/writing files in helper script Fixes errors such as Traceback (most recent call last): File "C:\Users\...\cairo\test\make-cairo-test-constructors.py", line 19, in for l in f.readlines(): File "c:\python39\lib\encodings\cp1253.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 6694: character maps to on non-English-language Windows locales/installations. boilerplate/make-cairo-boilerplate-constructors.py | 4 ++-- test/make-cairo-test-constructors.py | 4 ++-- version.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit d85738b39c2fe01ec09b83d2e1b88fa918939a01 Merge: d6c1787ac 0ed1053d8 Author: Uli Schlachter Date: Tue Feb 23 13:19:00 2021 +0000 Merge branch 'utils-cairo-trace-update-for-new-bfd' into 'master' cairo-trace: fix build with newer bfd and remove backtrace-symbols.c Closes #391 and #460 See merge request cairo/cairo!128 commit 0ed1053d8f9751d20b313491adc0117b8addd804 Author: Tim-Philipp Müller Date: Tue Feb 23 12:12:47 2021 +0000 utils: remove hacky replacement for backtrace_symbols in glibc Doesn't build any more, is very much non-essential, and hasn't been touched in any meaningful way since it was added 13 years ago, so just remove it for now until someone steps up. Chances are the glibc version has improved since then. util/Makefile.am | 8 +- util/README | 23 --- util/backtrace-symbols.c | 377 ----------------------------------------------- util/meson.build | 2 - 4 files changed, 2 insertions(+), 408 deletions(-) commit e30259f6237571c61992433c110bc6e1ef900244 Author: Tim-Philipp Müller Date: Tue Feb 23 11:36:24 2021 +0000 cairo-trace: fix build with newer versions of bfd And update configure/meson checks to check for the new function. Drop libiberty.h check since it's only needed by backtrace-symbols.c which we're about to remove. Closes #391, #460 Makefile.am | 1 + configure.ac | 8 +++++++- meson-cc-tests/bfd-section-flags.c | 9 +++++++++ meson.build | 11 ++++++----- util/cairo-trace/lookup-symbol.c | 7 +++---- 5 files changed, 26 insertions(+), 10 deletions(-) commit d6c1787ac1a705f129f3d56b6058f02129535796 Merge: 9e84988f4 e0cf7b869 Author: Uli Schlachter Date: Tue Feb 23 11:33:45 2021 +0000 Merge branch 'meson-symbol-lookup-option' into 'master' meson: add symbol-lookup option to allow disabling bfd/libiberty usage See merge request cairo/cairo!127 commit e0cf7b869fb1c6b73cf4a9aad2fc8aea4ff1f6ee Author: Tim-Philipp Müller Date: Tue Feb 23 10:33:23 2021 +0000 meson: add symbol-lookup option to allow disabling bfd/libiberty usage Can be used to workaround build issues caused by changes in the bfd API until those have been resolved. https://gitlab.freedesktop.org/cairo/cairo/-/issues/460 https://gitlab.freedesktop.org/cairo/cairo/-/issues/391 meson.build | 10 ++++------ meson_options.txt | 2 ++ 2 files changed, 6 insertions(+), 6 deletions(-) commit 9e84988f411b78786d8da2f8cb013e80fa7a98e0 Merge: 1569dcd4d ee4329927 Author: Heiko Lewin Date: Sun Feb 21 16:09:28 2021 +0000 Merge branch 'fix-448-test' into 'master' Make the test case for bug 448 pass See merge request cairo/cairo!123 commit 1569dcd4d8a2235052aa227dc9f5708cccaea23e Merge: c62c43a8c 967ac9378 Author: Heiko Lewin Date: Sun Feb 21 16:01:41 2021 +0000 Merge branch 'ubsan-fixes' into 'master' UBSan fixes in cairo-truetype-subset.c See merge request cairo/cairo!124 commit 967ac93789b1ce4e3f950f8eb6bc563ad91abeab Author: Jonathan Kew Date: Sun Feb 21 16:01:40 2021 +0000 Don't call _cairo_array_append_multiple with a zero count. The documentation for _cairo_array_append_multiple says "one or more items". If it is called with num_elements=0, it ends up calling _cairo_array_grow_by with num_elements=0, which if the array is currently empty (as here) leads to undefined behavior in _cairo_array_allocate in the line *elements = array->elements + array->num_elements * array->element_size; because it ends up trying to add 0 to a null pointer. C doesn't allow this. (UBSan flags this as "applying zero offset to null pointer".) src/cairo-array.c | 5 +++++ src/cairo-truetype-subset.c | 22 ++++++++++------------ 2 files changed, 15 insertions(+), 12 deletions(-) commit c62c43a8c653f5e4d20ef868065d4f882df9768e Merge: f4e43b682 ac616c270 Author: Heiko Lewin Date: Sun Feb 21 15:50:34 2021 +0000 Merge branch 'pdf-tag-leak' into 'master' Fix a memory leak with cairo_tag_begin() + pdf See merge request cairo/cairo!126 commit f4e43b6822ec73f2fd8046859315e5d2a5709bf5 Merge: 79b539fab a3b69a021 Author: Heiko Lewin Date: Sun Feb 21 15:49:06 2021 +0000 Merge branch 'pdf-font-names' into 'master' pdf font subset: Generate valid font names Closes #449 See merge request cairo/cairo!125 commit 79b539fabbf8bdf0fb37852dba3d2f00e7f6fe88 Merge: 92fa42126 917a1eddb Author: Tim-Philipp Müller Date: Sat Feb 20 15:28:05 2021 +0000 Merge branch 'ci-update-macos-image' into 'master' ci: update macos tags for newer vm image See merge request cairo/cairo!121 commit 917a1eddb4f8bbad076c7fc69ce185c85662a81f Author: Tim-Philipp Müller Date: Thu Feb 4 18:01:37 2021 +0000 ci: update macos tags for newer vm image cf. https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/389 .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 92fa421261bdb5d4c326c905f040907c1f580d48 Merge: 38a5c6036 848145251 Author: Uli Schlachter Date: Sun Feb 14 09:18:27 2021 +0000 Merge branch 'small-build-system-fixes' into 'master' Small build system fixes See merge request cairo/cairo!111 commit ac616c270dbcfaf5a70aef97cf989407f757fcbe Author: Uli Schlachter Date: Sat Feb 13 10:00:42 2021 +0100 Fix a memory leak with cairo_tag_begin() + pdf The error paths in _cairo_pdf_interchange_begin_dest_tag() do not clean up and cause some memory to be leaked. Fix this by adding the necessary free()s. The first hunk, the missing free(dest) was found by oss-fuzz (see link below). The second hunk is an obvious follow up. It also cleans up the memory allocated by _cairo_tag_parse_dest_attributes(). The cleanup in the second hunk is similar to the function _named_dest_pluck() in the same function, but that function also removes the entry from a hash table. The error case here is that exactly this hash table insertion failed. Thus, the code cannot simply use the already existing function. Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30880 Signed-off-by: Uli Schlachter src/cairo-pdf-interchange.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 38a5c6036881fd2fb9654127b6847467941482a1 Merge: 3894a1ab3 38e486b34 Author: Heiko Lewin Date: Thu Feb 11 19:12:10 2021 +0000 cairo-quartz-image-surface.c: Fix types commit 38e486b34d435130f2fb38c429e6016c3c82cd53 Author: Heiko Lewin Date: Thu Feb 11 19:12:10 2021 +0000 cairo-quartz-image-surface.c: Fix types src/cairo-quartz-image-surface.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit a3b69a0215fdface0fd5730872a4b3242d979dca Author: Uli Schlachter Date: Tue Feb 9 16:54:35 2021 +0100 pdf font subset: Generate valid font names A hash value is encoded in base 26 with upper case letters for font names. Commit ed984146 replaced "numerator = abs (hash);" with "numerator = hash;" in this code, because hash has type uint32_t and the compiler warned about taking the absolute value of an unsigned value. However, abs() is actually defined to take an int argument. Thus, there was some implicit cast. Since numerator has type long, i.e. is signed, it is now actually possible to get an overflow in the implicit cast and then have a negative number. The following code is not prepared for this and produces non-letters when encoding the hash. This commit fixes that problem by not using ldiv() and instead using / and % to directly compute the needed values. This gets rid of the need to convert to type long. Since now everything works with uint32_t, there is no more chance for negative numbers messing things up. Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/449 Signed-off-by: Uli Schlachter src/cairo-pdf-surface.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit ee43299276506c0d3a64531565d390dc8264b3ec Author: Uli Schlachter Date: Sat Feb 6 16:40:48 2021 +0100 Make the test case for bug 448 pass Someone apparently forgot to actually add the reference image. And also forgot to add the test to meson. Sigh. Signed-off-by: Uli Schlachter test/meson.build | 1 + test/reference/bug-448.ref.png | Bin 0 -> 127 bytes 2 files changed, 1 insertion(+) commit 3894a1ab3322ce6c71c626daca814b4a7ac0d299 Merge: b29d0f3d5 fb017cc73 Author: Uli Schlachter Date: Fri Feb 5 15:01:07 2021 +0000 Merge branch 'fix_path_precision' into 'master' test/path-precision.c: Correct initialization, error margin for comparisons See merge request cairo/cairo!120 commit fb017cc73a61ac3cb8d0fd32156febcbe78b1a7d Author: Heiko Lewin Date: Thu Feb 4 01:39:15 2021 +0100 test/path-precision.c: Correct initialization, error margin for comparisons test/path-precision.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) commit b29d0f3d582bbafdbac1bb0b21de3994296aedf6 Merge: 48194cf09 d07fb4105 Author: Heiko Lewin Date: Wed Feb 3 23:52:56 2021 +0000 Merge branch 'fix-recording-to-png' into 'master' recording-surface: Fix offset error See merge request cairo/cairo!118 commit d07fb4105684235dfbed8e1f9499f41a762967f6 Author: Matthias Clasen Date: Sat Jan 30 17:57:14 2021 -0500 recording-surface: Fix offset error When a recording surface with non-zero origin is saved to a png file, it gets cut off. Fix this by setting a device offset when acquiring the source image. src/cairo-recording-surface.c | 1 + 1 file changed, 1 insertion(+) commit 48194cf093d6eadf1a64f45d76b1fe001f467a05 Merge: ee90ce594 b345be5af Author: Uli Schlachter Date: Fri Jan 22 19:00:10 2021 +0000 Merge branch 'fill-use-after-free' into 'master' Avoid use after free in cairo_fill See merge request cairo/cairo!116 commit ee90ce594678ff227a28cdf1d9b55b7c3494f49c Merge: 76aed3a5e 36f5dee47 Author: Uli Schlachter Date: Fri Jan 22 18:36:33 2021 +0000 Merge branch 'set-source-surface-leak' into 'master' Plug a memory leak in an error case See merge request cairo/cairo!115 commit b345be5afeee60c04414867ea6eb671793880ecd Author: Matthias Clasen Date: Fri Jan 22 13:28:44 2021 -0500 Avoid a use-after-free asan was complaining that the limits struct goes out of scope before it is used via the pointer in the polygon struct, and it is right: ==386746==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7ffd3ccebdfc at pc 0x7f783d5eaaee bp 0x7ffd3cceba80 sp 0x7ffd3cceba70 READ of size 4 at 0x7ffd3ccebdfc thread T0 #0 0x7f783d5eaaed in _add_clipped_edge ../src/cairo-polygon.c:351 #1 0x7f783d5ebba3 in _cairo_polygon_add_edge ../src/cairo-polygon.c:520 #2 0x7f783d5ebc82 in _cairo_polygon_add_external_edge ../src/cairo-polygon.c:530 #3 0x7f783d582149 in _cairo_filler_line_to ../src/cairo-path-fill.c:63 #4 0x7f783d588d9c in _cairo_path_fixed_interpret ../src/cairo-path-fixed.c:831 #5 0x7f783d582a44 in _cairo_path_fixed_fill_to_polygon ../src/cairo-path-fill.c:147 #6 0x7f783d6204fe in _cairo_spans_compositor_fill ../src/cairo-spans-compositor.c:1151 #7 0x7f783d5126de in _cairo_compositor_fill ../src/cairo-compositor.c:203 #8 0x7f783d5571f9 in _cairo_image_surface_fill ../src/cairo-image-surface.c:1003 #9 0x7f783d647f2f in _cairo_surface_fill ../src/cairo-surface.c:2424 #10 0x7f783d52ebea in _cairo_gstate_fill ../src/cairo-gstate.c:1312 #11 0x7f783d51cca4 in _cairo_default_context_fill ../src/cairo-default-context.c:1057 #12 0x7f783d6812d6 in cairo_fill ../src/cairo.c:2421 src/cairo-spans-compositor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 36f5dee473010a450ff49c1bc34bca9edd4ff539 Author: Matthias Clasen Date: Fri Jan 22 12:24:30 2021 -0500 Plug a memory leak in an error case GTK has a testcase that tests the error when creating an oversize image, and asan tells me that it triggers a memory leak in cairo: Direct leak of 160 byte(s) in 1 object(s) allocated from: #0 0x7f1122755667 in __interceptor_malloc (/lib64/libasan.so.6+0xb0667) #1 0x7f1120cc83e8 in _cairo_pattern_create_solid ../src/cairo-pattern.c:607 #2 0x7f1120cc8487 in _cairo_pattern_create_in_error ../src/cairo-pattern.c:630 #3 0x7f1120cc87cb in INT_cairo_pattern_create_for_surface ../src/cairo-pattern.c:736 #4 0x7f1120c1f1c7 in _cairo_default_context_set_source_surface ../src/cairo-default-context.c:327 #5 0x7f1120d8386a in INT_cairo_set_source_surface ../src/cairo.c:982 #6 0x7f1121d005a2 in gdk_cairo_set_source_pixbuf ../gdk/gdkcairo.c:234 #7 0x401427 in test_set_source_big_pixbuf ../testsuite/gdk/cairo.c:23 src/cairo-default-context.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 76aed3a5e32fac8b47d42eb040569277dfcc496d Merge: d909a7392 f0873222e Author: Uli Schlachter Date: Thu Jan 21 16:39:15 2021 +0000 Merge branch 'fix-autoconf' into 'master' Fix autoconf warnings for version 2.70 See merge request cairo/cairo!113 commit d909a7392c0b8261e5c9b21a25742601931a5eef Merge: f5d32c071 f271715f3 Author: Uli Schlachter Date: Tue Jan 19 16:34:49 2021 +0000 Merge branch 'use_correct_variable' into 'master' Replace $have_png with $use_png See merge request cairo/cairo!88 commit f5d32c071f25604f60b38ba5fdc91ce226f9efc9 Merge: fa1b02d7e ba2afdcac Author: Heiko Lewin Date: Tue Jan 19 12:11:33 2021 +0000 Merge branch 'fix_surface_ref' into 'master' Add missing call to cairo_surface_reference See merge request cairo/cairo!102 commit ba2afdcacf42eccf263b39efc77b85f3a65dcd74 Author: Heiko Lewin Date: Tue Jan 19 12:11:33 2021 +0000 cairo-quartz-image-surface.c: Add missing call to cairo_surface_reference (Thanks to Fred Bca) src/cairo-quartz-image-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f4d89506f58a64b4829b1bb239bab9e46d63727 Author: Jehan Date: Tue Jan 19 12:42:31 2021 +0100 src: do not override explicitly requested grayscale antialiasing. If CAIRO_ANTIALIAS_DEFAULT is selected and system is set to subpixel, it is perfectly normal to switch to CAIRO_ANTIALIAS_SUBPIXEL. But when the calling application specifically requested CAIRO_ANTIALIAS_GRAY then Cairo should honor the request. This is an issue we have had for years in GIMP, where text on images would render differently depending on the system the file is opened on. This is obviously not right as a graphics work should be system independant and allow the creator to decide if one wants a text to have grayscale or subpixel rendering (a settings which would stick when sharing the work file). Cairo should not override this. The CAIRO_ANTIALIAS_DEFAULT settings exists exactly for this (when we want Cairo to choose for us, in a system-dependant way); other settings are when we need system independance. Thanks to Adam Fontenot for initial investigations and tests on this and other contributors before this. src/cairo-ft-font.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fa1b02d7e596ff33fc7c5a2decd4dd10bbd091ab Merge: a88696ed1 99dc4bf4c Author: Heiko Lewin Date: Tue Jan 19 11:26:33 2021 +0000 Merge branch 'fix_device_errors' into 'master' Fix device errors See merge request cairo/cairo!30 commit 99dc4bf4cedda6f8c71ce978a945b8f445d31105 Author: Heiko Lewin Date: Tue Jan 19 11:26:33 2021 +0000 Fix device errors for GLESv2 contexts Ignore GLerrors when re-selecting a (possibly deleted) GLprogram src/cairo-gl-info.c | 42 +++++++++++++++++++++++++++++++++++++----- src/cairo-gl-shaders.c | 18 +++++++++++++++--- 2 files changed, 52 insertions(+), 8 deletions(-) commit a88696ed1563351883a520941e7ab4d331c12d11 Merge: 01f38097a 4e02f705e Author: Heiko Lewin Date: Tue Jan 19 11:12:27 2021 +0000 Merge branch 'extend-test-pdf-tagged-text' into 'master' Add tests for PDF metadata See merge request cairo/cairo!100 commit 01f38097a5eed340aab9d3e626864424482b34a5 Merge: d49d85581 81806c011 Author: Heiko Lewin Date: Tue Jan 19 11:07:54 2021 +0000 cairo-xlib: Check for maximum surface size commit d49d8558199fb594a57bd84d386928aa8ebcfb7e Merge: 941cddfa3 0134ac5a3 Author: Heiko Lewin Date: Tue Jan 19 11:06:44 2021 +0000 Merge branch 'win32-get-dc' into 'master' cairo_win32_surface_get_dc: Return NULL for error surfaces Closes #405 See merge request cairo/cairo!106 commit 941cddfa39584e812d41b16fc80c67a2f9007658 Merge: d72ff7c18 4e2e876be Author: Heiko Lewin Date: Tue Jan 19 10:48:52 2021 +0000 'Fix' a NULL pointer 'dereference' in cairo-pdf-surface commit f0873222ef39441e59d00fb62285b9014f344f30 Author: Heiko Lewin Date: Mon Jan 18 17:55:04 2021 +0100 Fix autoconf warnings for version 2.70 build/aclocal.cairo.m4 | 14 ++++---- build/configure.ac.system | 86 ++++++++++++++++++++++++++--------------------- configure.ac | 15 ++++----- 3 files changed, 61 insertions(+), 54 deletions(-) commit 4e2e876be15b85a3ac94e8343e41d8fb9ae1fdf4 Author: Uli Schlachter Date: Sun Jan 17 20:59:58 2021 +0100 'Fix' a NULL pointer 'dereference' in cairo-pdf-surface The expression &image_surface->base basically just casts the cairo_image_surface_t* to cairo_surface_t*. However, technically it is a NULL pointer dereference and UndefinedBehaviorSanitizer flags it as such: runtime error: member access within null pointer of type 'cairo_image_surface_t' (aka 'struct _cairo_image_surface') This commit fixes this by adding a NULL check. Signed-off-by: Uli Schlachter src/cairo-pdf-surface.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d72ff7c18aea22fd92238608804782e4841564d2 Merge: 0224c7802 c47db9e36 Author: Uli Schlachter Date: Sun Jan 17 10:57:48 2021 +0000 Merge branch 'autotools-dist-meson-subproject-wraps' into 'master' autotools: dist meson subproject wraps Closes #447 See merge request cairo/cairo!91 commit 0224c7802fe637102a63361fce0618b530997ef8 Merge: 4258fbd3b e2ba2e00a Author: Uli Schlachter Date: Sun Jan 17 08:24:00 2021 +0100 Merge gitlab.freedesktop.org:pcpenpal/cairo commit 4258fbd3b7accf053a383aa9356fe987d91a8751 Merge: f0fb05f3a 156cd3eaa Author: Uli Schlachter Date: Sat Jan 16 16:17:46 2021 +0100 Merge tag '1.17.4' cairo 1.17.4 release We are not quite sure what happened, but the 1.17.4 tag and the master branch have different Git histories, but the same content. The merge commits are missing from the history of the tag. This merge is simply the result of "git merge 1.17.4". This fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/446 commit f0fb05f3a11e8ef949118676460ad4805b2f8ad6 Merge: 974791b4e 51d50621b Author: Uli Schlachter Date: Sat Jan 16 11:37:21 2021 +0000 Merge branch 'meson-only-build-helper-libs-if-needed' into 'master' meson: only build cairo-boilerplate and cairo-missing helper libs if needed See merge request cairo/cairo!110 commit 51d50621be80131334d6966d5c08bb5f635882ac Author: Tim-Philipp Müller Date: Fri Jan 15 18:47:08 2021 +0000 meson: only build cairo-boilerplate and cairo-missing helper libs if needed Used by tests and the sphinx utility, which may or may not be built, and if they're not built we don't need to build those libs either. boilerplate/meson.build | 2 ++ util/cairo-missing/meson.build | 2 ++ 2 files changed, 4 insertions(+) commit 81806c01112bc504d96d79f969f229e27625344f Author: Uli Schlachter Date: Wed Jan 13 16:36:33 2021 +0100 cairo-xlib: Check for maximum surface size X11 use uint16_t for the width/height of things. Anything too large will be truncated when sending the request to the X11 server. This commit adds a size check to a function that did not check things and then later caused a segmentation fault. Not adding a test case because the test case from the below bug report allocates 3,5 GiB of memory, which I find too much for a test. Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/414 Signed-off-by: Uli Schlachter src/cairo-xlib-private.h | 2 ++ src/cairo-xlib-surface-shm.c | 3 +++ src/cairo-xlib-surface.c | 2 -- 3 files changed, 5 insertions(+), 2 deletions(-) commit 0134ac5a3d3599cf1f3da6ff286f67d3db43adfa Author: Uli Schlachter Date: Wed Jan 13 16:26:18 2021 +0100 cairo_win32_surface_get_dc: Return NULL for error surfaces Surfaces from _cairo_surface_create_in_error() have no backend. This commit fixes a NULL pointer dereference in cairo_win32_surface_get_dc(). Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/405 Signed-off-by: Uli Schlachter src/win32/cairo-win32-surface.c | 3 +++ 1 file changed, 3 insertions(+) commit 974791b4eede7f2ff774b56dd90234ed2cd70311 Merge: e45875142 a7c49ec86 Author: Heiko Lewin Date: Mon Jan 11 19:48:26 2021 +0000 Merge branch 'fix-clear-nothing-to-do' into 'master' Fix _cairo_surface_paint not setting is_clear Closes #283 See merge request cairo/cairo!104 commit e45875142fc5d0bb7968b150f379172130415342 Merge: 891468f19 66c991185 Author: Heiko Lewin Date: Mon Jan 11 19:43:54 2021 +0000 Merge branch 'snapshot-error-fixes' into 'master' Slightly improve dealing with error snapshots See merge request cairo/cairo!92 commit 891468f191cccc80b8e491318e0646a7fffa22bf Merge: 21db0989d b1e81ee98 Author: Heiko Lewin Date: Mon Jan 11 19:41:24 2021 +0000 Merge branch 'font-parse-oob' into 'master' Add a bounds check to cairo_cff_font_read_fdselect() Closes #451 See merge request cairo/cairo!103 commit 21db0989d7dd76b5ccecc46a6ff7b4401c49936d Merge: 9508d25d6 be0f938e4 Author: Heiko Lewin Date: Mon Jan 11 19:33:35 2021 +0000 Merge branch 'debug-fix' into 'master' Apply small fix that was reported as an issue Closes #385 See merge request cairo/cairo!105 commit be0f938e4ac4129c98740ce3c49adfd255a103fe Author: Uli Schlachter Date: Mon Jan 11 19:08:02 2021 +0100 Apply small fix that was reported as an issue Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/385 Signed-off-by: Uli Schlachter src/cairo-scaled-font-subsets.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a7c49ec86117bdf1702f9118add187af2582455f Author: Uli Schlachter Date: Mon Jan 11 18:37:52 2021 +0100 Fix _cairo_surface_paint not setting is_clear In commit 10e58a4a I changed the code in cairo-surface.c to avoid setting surface->is_clear = FALSE; in some situations where it was not necessary, because the operation did not actually modify anything (it returned CAIRO_INT_STATUS_NOTHING_TO_DO). However, that change accidentally also caused _cairo_surface_paint() not to set surface->is_clear = TRUE; in similar cases. That was unintended. This commit fixes that by always setting is_clear = TRUE when necessary, but keeps the optimisation of not setting is_clear = FALSE when not necessary. The connection to the below issue is that the issue happened with surfaces with width=0. Clearing such a surface with CAIRO_OPERATOR_CLEAR causes CAIRO_INT_STATUS_NOTHING_TO_DO and thus is_clear = TRUE was not set. This error was later caught by a failed assertion. Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/283 Signed-off-by: Uli Schlachter src/cairo-surface.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 66c9911850257b2d42a6abf756baed16fe1ae9d5 Author: Uli Schlachter Date: Sat Dec 26 16:09:16 2020 +0100 Slightly improve dealing with error snapshots An error in _cairo_surface_snapshot_copy_on_write() results in a snapshot in an error state and the snapshot's ->target could now point to a surface from _cairo_surface_create_in_error(). These surfaces e.g. have ->backend == NULL. Thus, anything looking at ->backend->type now explodes. This commit deals with two places which caused segfaults in this situation. There is no test case for this, because _cairo_surface_snapshot_copy_on_write() really is not supposed to fail. Found-while-investigating: https://gitlab.freedesktop.org/cairo/cairo/-/issues/448 Signed-off-by: Uli Schlachter src/cairo-recording-surface.c | 5 +++++ src/cairo-surface-snapshot.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) commit b1e81ee98f532a7606e451c55033e42c5bfb517c Author: Uli Schlachter Date: Wed Jan 6 10:38:42 2021 +0100 Add a bounds check to cairo_cff_font_read_fdselect() The code in cairo-cff-subset.c parses a binary format without seeming to bother much with verifying the data. The result is that poppler can be used to cause an out-of-bounds write in cairo_cff_font_read_fdselect() via a crafted font file. Fix this by adding the needed length check. The other code in the file also contains lots of similar things. Since I cannot really fix everything properly, I'll just fix the one instance that was found by a fuzzer. No testcase is added, because this depends on a broken font that is quite large. Adding something this big to the test suite does not seem sensible. Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/451 Signed-off-by: Uli Schlachter src/cairo-cff-subset.c | 2 ++ 1 file changed, 2 insertions(+) commit 9508d25d6ac228ec13b21b54df6aa6f22b8a95f3 Merge: 414d0aee1 a012540d9 Author: Heiko Lewin Date: Wed Jan 6 21:57:21 2021 +0000 Merge branch 'xml-requires-png' into 'master' autoconf: Reject --enable-xml --disable-png See merge request cairo/cairo!87 commit 414d0aee10d3917a10ae646deef46624fe26cf47 Merge: b80d26a06 a9ea73ae0 Author: Uli Schlachter Date: Wed Jan 6 13:41:30 2021 +0000 Merge branch 'fix-compiler-warnings-in-test-suite' into 'master' Fix compiler warnings in test suite See merge request cairo/cairo!98 commit b80d26a064a0b9ca749a0ed386c3f1da9fb7fcae Merge: cb3618f76 d8d16562e Author: Uli Schlachter Date: Wed Jan 6 13:27:28 2021 +0000 Merge branch 'meson-ci-macos' into 'master' meson: fix macOS build and add macOS ci Closes #441 See merge request cairo/cairo!101 commit d8d16562ec094593eba4446432e918704590ab20 Author: Tim-Philipp Müller Date: Sat Sep 26 19:25:21 2020 +0100 meson: fix macOS build and add macOS ci Fixes #441 .gitlab-ci.yml | 26 ++++++++++++++++++++++++ meson.build | 61 ++++++++++++++++++++++++++----------------------------- meson_options.txt | 1 + 3 files changed, 56 insertions(+), 32 deletions(-) commit 4e02f705e498885ad7cdf1e18313e68b06b9228e Author: Sven Neumann Date: Mon Jan 4 12:45:38 2021 +0100 Add tests for PDF metadata Extend the "pdf-tagged-text" test so that it does some basic checks on the PDF file it creates. This covers the date fields as well as some other metadata. More checks can and should be added. test/pdf-tagged-text.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) commit cb3618f76d10c2e0cd1e6196ed79d4af4d7d5e44 Merge: 7ac8220c1 58b5aa270 Author: Uli Schlachter Date: Mon Jan 4 15:47:29 2021 +0000 Merge branch 'fix_memory_allocation' into 'master' Added checks for failed strdups in cairo-recording-surface.c See merge request cairo/cairo!99 commit 58b5aa2706ec95403b9fb6f364acd95c78ba6236 Author: Heiko Lewin Date: Mon Jan 4 16:16:15 2021 +0100 Added checks for failed strdups in cairo-recording-surface.c src/cairo-recording-surface.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) commit 7ac8220c1fd4afb259e53b7a5cd93a23859bdbda Merge: ed7e51eb4 a1dc600a0 Author: Heiko Lewin Date: Mon Jan 4 15:12:38 2021 +0000 Merge branch 'fix-copy-paste-error-in-recording-surfaces' into 'master' Fix copying tags in a recording surface Closes #448 See merge request cairo/cairo!93 commit ed7e51eb410da324258acf5ae34f0c90dd16d2e8 Merge: b0ef04e2d 467e7822a Author: Heiko Lewin Date: Mon Jan 4 14:41:12 2021 +0000 Merge branch 'font-oob' into 'master' Add a bounds check to cairo_cff_parse_charstring() Closes #444 See merge request cairo/cairo!90 commit a9ea73ae0ccbac354b34673be214b6e581700c22 Author: Sven Neumann Date: Mon Jan 4 14:06:21 2021 +0100 Fix compiler warnings in test suite Fix some enum mixups, mostly cairo_status_t vs cairo_test_status_t. test/cairo-test.c | 20 ++++++++++---------- test/partial-coverage.c | 6 +++--- test/show-glyphs-advance.c | 2 +- test/subsurface.c | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) commit b0ef04e2d5bc218c1504d70d2843532e353516f1 Merge: 0bf2c140d a7a9c1130 Author: Uli Schlachter Date: Mon Jan 4 12:21:16 2021 +0000 Merge branch 'meson-ci-android' into 'master' ci: add meson android aarch64 build See merge request cairo/cairo!96 commit a7a9c11309c757de362841866c4280882caa3cce Author: Tim-Philipp Müller Date: Thu Dec 31 18:47:25 2020 +0000 ci: add meson android aarch64 build .gitlab-ci.yml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 0bf2c140d2dc6521c6f925b1757f2d4809eabf18 Merge: 979382dd3 be61878a8 Author: Heiko Lewin Date: Tue Dec 29 00:03:25 2020 +0000 Merge branch 'uninitialised-var-in-recording' into 'master' Fix two uninitialised variables in _cairo_recording_surface_snapshot() See merge request cairo/cairo!95 commit be61878a8ed4123d00323b5c66826a4243cb823c Author: Uli Schlachter Date: Sun Dec 27 21:35:16 2020 +0100 Fix two uninitialised variables in _cairo_recording_surface_snapshot() Signed-off-by: Uli Schlachter src/cairo-recording-surface.c | 2 ++ 1 file changed, 2 insertions(+) commit a1dc600a07f89b9c08ffa8c25dc92f75fec10dd6 Author: Uli Schlachter Date: Sat Dec 26 16:17:58 2020 +0100 Fix copying tags in a recording surface The code was copying from the wrong member of an union. This caused a huge num_dashes value to be read, which then caused a so large memory allocation that malloc returned an error. Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/448 Signed-off-by: Uli Schlachter src/cairo-recording-surface.c | 8 ++--- test/Makefile.sources | 1 + test/bug-448.c | 76 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 4 deletions(-) commit c47db9e36c3f9fa92bdc0779de5bf2f26b4fe531 Author: Tim-Philipp Müller Date: Fri Dec 25 19:27:28 2020 +0000 autotools: dist meson subproject wraps Fixes #447 Makefile.am | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 467e7822a975fa3ed740144cd849ab596ab30118 Author: Uli Schlachter Date: Fri Dec 25 16:09:19 2020 +0100 Add a bounds check to cairo_cff_parse_charstring() The code in cairo-cff-subset.c parses a binary font format without seeming to bother much verifying the data. The result is that poppler can be used to cause an out-of-bounds access in cairo_cff_parse_charstring() via a crafted font file. Fix this by adding the needed length check. The other code in the file also contains lots of similar things. Since I cannot really fix everything properly, I'll just fix the one instance that was found by a fuzzer. No testcase is added, because this depends on a broken font that is quite large. Adding something this big to the test suite does not seem sensible. Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/444 Signed-off-by: Uli Schlachter src/cairo-cff-subset.c | 2 ++ 1 file changed, 2 insertions(+) commit 979382dd302bbab73d8c81740ddd72afc31a8ea8 Merge: c7b6c073e 2ceb279d7 Author: Uli Schlachter Date: Fri Dec 25 14:43:52 2020 +0000 Merge branch 'boilerplate-leak' into 'master' boilerplate-xcb: Avoid leaks on error See merge request cairo/cairo!82 commit c7b6c073ea0e8cac32c4a34f99ffd502096f19a1 Merge: 78266cc8c eb75ce086 Author: Uli Schlachter Date: Fri Dec 25 14:43:14 2020 +0000 Merge branch 'xcb-fix-clip-leak' into 'master' Fix a leak in cairo-xcb's render compositor Closes #24 See merge request cairo/cairo!83 commit 78266cc8c0f7a595cfe8f3b694bfb9bcc3700b38 Merge: 8d7c08d93 0677e0a94 Author: Uli Schlachter Date: Thu Dec 24 08:33:04 2020 +0000 Merge branch 'fix-437' into 'master' Fix mask usage in image-compositor See merge request cairo/cairo!85 commit 8d7c08d9345b80f6c4a6663ec4492e53c8f3eefa Merge: 7b258a2fb ebbaebdec Author: Uli Schlachter Date: Wed Dec 23 07:50:03 2020 +0000 Merge branch 'csi' into 'master' meson: Generate cairo-script-interpreter.pc needed by GTK+ See merge request cairo/cairo!70 commit ebbaebdec12878836fc84d31c59ee324e67abc05 Author: Xavier Claessens Date: Fri Oct 16 19:52:55 2020 -0400 meson: Generate cairo-script-interpreter.pc needed by GTK+ build/configure.ac.features | 4 +++- util/cairo-script/Makefile.am | 3 +++ util/cairo-script/cairo-script-interpreter-uninstalled.pc.in | 8 ++++++++ util/cairo-script/cairo-script-interpreter.pc.in | 10 ++++++++++ util/cairo-script/meson.build | 11 ++++++++++- 5 files changed, 34 insertions(+), 2 deletions(-) commit f271715f374083ebccc6d6b93fcef6c000d440b3 Author: Uli Schlachter Date: Sat Dec 19 11:24:46 2020 +0100 Replace $have_png with $use_png The remaining code in configure.ac also uses this variable. Reported-at: https://gitlab.freedesktop.org/cairo/cairo/commit/81102cc214814cac8c99fed08a877d8f38312e51#note_201221 Signed-off-by: Uli Schlachter configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a012540d990f9baeccf8b7441c27a11acbc2a672 Author: Uli Schlachter Date: Sat Dec 19 11:10:13 2020 +0100 autoconf: Reject --enable-xml --disable-png The xml surface depends on png. Before this commit, configuring with autogen.sh --disable-png --disable-svg --enable-xml resulted in a failing build: src/cairo-xml-surface.c: In function ‘_cairo_xml_emit_image’: src/cairo-xml-surface.c:673:14: error: implicit declaration of function ‘cairo_surface_write_to_png_stream’ After this commit, configure instead rejects this combination with: checking whether cairo's xml surface backend feature could be enabled... no (requires --enable-png) configure: error: xml surface backend feature could not be enabled Noticed-at: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/67#note_644347 Signed-off-by: Uli Schlachter configure.ac | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 84814525100eef921bfb5fe3b3bd23b30f42b573 Author: Uli Schlachter Date: Tue Dec 15 18:59:31 2020 +0100 test/meson.build: Add missing tests These are entries that are present in test/Makefile.sources, but are missing from test/meson.build. Signed-off-by: Uli Schlachter test/meson.build | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 3a77858dbd0295de3cd5d4f40ec98a759af6e9b5 Author: Uli Schlachter Date: Tue Dec 15 18:59:10 2020 +0100 test/Makefile.sources: Use tabs for indentation Signed-off-by: Uli Schlachter test/Makefile.sources | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0677e0a94968447e132c69f58cb04e5377e0c828 Author: Heiko Lewin Date: Tue Dec 15 18:14:35 2020 +0100 Add meson support test/meson.build | 1 + 1 file changed, 1 insertion(+) commit 8bc14a6bba3bc8a64ff0749c74d9b96305bf6429 Author: Heiko Lewin Date: Tue Dec 15 17:14:18 2020 +0100 Minor cleanups test/bug-image-compositor.c | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) commit 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Author: Heiko Lewin Date: Tue Dec 15 16:48:19 2020 +0100 Fix mask usage in image-compositor src/cairo-image-compositor.c | 8 +++--- test/Makefile.sources | 1 + test/bug-image-compositor.c | 39 ++++++++++++++++++++++++++++ test/reference/bug-image-compositor.ref.png | Bin 0 -> 185 bytes 4 files changed, 44 insertions(+), 4 deletions(-) commit 7b258a2fb844059ef3f0b237d06311cf3efd8aba Merge: e22d7212a e9ccb1d8d Author: Uli Schlachter Date: Tue Dec 15 15:17:39 2020 +0000 Merge branch 'libversion-fixup-match-autotools' into 'master' meson: fix library versioning Closes #442 See merge request cairo/cairo!84 commit e9ccb1d8d095482e4139da658e679d5aad56b184 Author: Tim-Philipp Müller Date: Tue Dec 15 00:12:55 2020 +0000 meson: fix library versioning Fixes #442 meson.build | 23 +++++++++++++++++++++-- src/meson.build | 4 ++-- util/cairo-gobject/meson.build | 4 ++-- util/cairo-script/meson.build | 4 ++-- 4 files changed, 27 insertions(+), 8 deletions(-) commit e22d7212acb454daccc088619ee147af03883974 Merge: f7054c892 dccaa9179 Author: Uli Schlachter Date: Fri Dec 11 14:14:24 2020 +0000 Merge branch 'bigsur-use-after-free' into 'master' Ref and destroy the cairo surface handed off to CoreGraphics. Closes #420 See merge request cairo/cairo!52 commit dccaa9179bcf08cb6909305de28c0495523339bc Author: John Ralls Date: Sat Dec 5 11:44:19 2020 -0800 Quartz Better manage acquired/replayed surface. src/cairo-quartz-surface.c | 56 ++++++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 19 deletions(-) commit eb75ce0861b2f3dc753b8fa5653afc2f99948f0b Author: Uli Schlachter Date: Sat Dec 5 08:15:34 2020 +0100 Fix a leak in cairo-xcb's render compositor The code here temporary replaces extents->clip with another clip to call a function. Afterwards, it restores the previous copy. The temporary clip is only freed when it still is pointed to by extents->clip. This logic is wrong. It is indeed possible that the clip is simplified and changes. In this case, the original clip is also correctly freed. However, this still means that we have to clean up and destroy the new clip. The previous code just leaked it. This was originally identified by Massimo in [1]. I am just committing his patch. [1]: https://bugs.freedesktop.org/show_bug.cgi?id=91267 Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/24 Signed-off-by: Uli Schlachter src/cairo-xcb-surface-render.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2ceb279d704840dacf6880b5bf2e168ede16097a Author: Uli Schlachter Date: Sat Dec 5 08:08:14 2020 +0100 boilerplate-xcb: Avoid leaks on success This gets rid of the following two leaks reported by valgrind when successfully running a test with CAIRO_TEST_TARGET=xcb: 8,000 bytes in 2 blocks are definitely lost in loss record 9 of 10 at 0x483877F: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x4B7E135: read_packet (xcb_in.c:259) by 0x4B7E135: _xcb_in_read (xcb_in.c:1031) by 0x4B7BF8E: _xcb_conn_wait (xcb_conn.c:516) by 0x4B7D6AE: wait_for_reply (xcb_in.c:516) by 0x4B7D8C8: xcb_request_check (xcb_in.c:745) by 0x18D747: _cairo_boilerplate_xcb_create_surface (cairo-boilerplate-xcb.c:310) by 0x12906F: cairo_test_for_target (cairo-test.c:819) by 0x12AAB5: _cairo_test_context_run_for_target (cairo-test.c:1555) by 0x126921: _cairo_test_runner_draw (cairo-test-runner.c:250) by 0x126921: main (cairo-test-runner.c:932) 8,000 bytes in 2 blocks are definitely lost in loss record 10 of 10 at 0x483877F: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x4B7E135: read_packet (xcb_in.c:259) by 0x4B7E135: _xcb_in_read (xcb_in.c:1031) by 0x4B7BF8E: _xcb_conn_wait (xcb_conn.c:516) by 0x4B7D6AE: wait_for_reply (xcb_in.c:516) by 0x4B7D7C0: xcb_wait_for_reply (xcb_in.c:546) by 0x18D45D: find_depth (cairo-boilerplate-xcb.c:154) by 0x18D45D: _cairo_boilerplate_xcb_create_render_0_0 (cairo-boilerplate-xcb.c:621) by 0x12906F: cairo_test_for_target (cairo-test.c:819) by 0x12AAB5: _cairo_test_context_run_for_target (cairo-test.c:1555) by 0x126921: _cairo_test_runner_draw (cairo-test-runner.c:250) by 0x126921: main (cairo-test-runner.c:932) Signed-off-by: Uli Schlachter boilerplate/cairo-boilerplate-xcb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e3eaccb939836386aa5f5895eea0da3e9863826c Author: Uli Schlachter Date: Sat Dec 5 07:46:41 2020 +0100 boilerplate-xcb: Avoid leaks on error Before this commit, running the test suite against a non-existing display under valgrind resulted in: $ ( cd test; DISPLAY=:2 CAIRO_TEST_TARGET=xcb valgrind --leak-check=full .libs/cairo-test-suite -f random-clip ) [...] ==47359== 64 bytes in 2 blocks are definitely lost in loss record 1 of 7 ==47359== at 0x483AB65: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==47359== by 0x18A272: cairo_boilerplate_xcalloc (cairo-boilerplate-system.c:65) ==47359== by 0x18D652: _cairo_boilerplate_xcb_create_surface (cairo-boilerplate-xcb.c:269) ==47359== by 0x12906F: cairo_test_for_target (cairo-test.c:819) ==47359== by 0x12AAB5: _cairo_test_context_run_for_target (cairo-test.c:1555) ==47359== by 0x126921: _cairo_test_runner_draw (cairo-test-runner.c:250) ==47359== by 0x126921: main (cairo-test-runner.c:932) This commit fixes that by freeing the allocated memory in the error path. Signed-off-by: Uli Schlachter boilerplate/cairo-boilerplate-xcb.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 1ddfccca31e23820a30e8f618e216fe2931b49b2 Author: John Ralls Date: Mon Nov 30 17:16:00 2020 -0800 Quartz image drawing: Remove containers for cairo_surface_t. Since we now copy the data that CGImage needs we don't need to keep the surface around anymore, nor release it or the image in the DataProviderReleaseCallback. src/cairo-quartz-image-surface.c | 54 ++++++++++----------------------- src/cairo-quartz-surface.c | 64 +++++++++++----------------------------- 2 files changed, 34 insertions(+), 84 deletions(-) commit b5e84a97833e8e1d082f4409383b09f9827ada09 Author: John Ralls Date: Mon Nov 30 15:13:41 2020 -0800 Quartz: Ensure that image data and surface are available to draw. Snapshot the cairo_surface_t and copy the image data to provide to the CGDataProvider so that it is independent of the cairo_surface_t's lifetime. Closes https://gitlab.freedesktop.org/cairo/cairo/-/issues/420 src/cairo-quartz-image-surface.c | 49 +++++++++++++++++++++++++++++----------- src/cairo-quartz-surface.c | 15 +++++++++--- 2 files changed, 48 insertions(+), 16 deletions(-) commit 32c12c617a2551e1238e52c570bd5c42a6c0cbef Author: John Ralls Date: Mon Nov 30 14:10:18 2020 -0800 Ensure _cairo_quartz_surface_create_internal always nulls imageSurfaceEquiv. src/cairo-quartz-surface.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit f7054c892e35a04180d586e8af2d4c62601308f1 Merge: 6a713391f 313f6fefc Author: Uli Schlachter Date: Sun Nov 22 19:08:41 2020 +0000 Merge branch 'meson-ci-fix' into 'master' ci: fix default options in meson ci See merge request cairo/cairo!80 commit 313f6fefc9f0882ba17880977369854d0b179f48 Author: Tim-Philipp Müller Date: Sun Nov 22 18:44:20 2020 +0000 ci: fix default options in meson ci Follow-up fix to !78 .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a713391fa4e90e998d8fd2bee248b8196501e62 Merge: 577477207 8913b6e2f Author: Uli Schlachter Date: Sat Nov 21 13:48:13 2020 +0000 Merge branch 'pdf-leak' into 'master' pdf: fix leak of source surfaces See merge request cairo/cairo!51 commit 8913b6e2fce42185c5ef8227be4d0b821d37f71d Author: Félix Poisot Date: Sat Nov 21 11:58:59 2020 +0000 The array introduced in bff47b43 isn't cleared on surface finish src/cairo-pdf-surface.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 577477207a300fd75c93da93dbb233256d8b48d8 Merge: c1d489b47 08c76f4cb Author: Uli Schlachter Date: Fri Nov 20 16:38:31 2020 +0000 Merge branch 'trace_parse_fix' into 'master' cairo-trace: Fix escape character encoding in string literals See merge request cairo/cairo!72 commit 08c76f4cbf9503328e735fbeed5ca96004f580cc Author: George Matsumura Date: Mon Aug 31 22:15:21 2020 -0600 cairo-trace: Fix escape character encoding in string literals This fixes a typo wherein both a return character and a tab character were encoded when only a return character was specified for encoding. Signed-off-by: George Matsumura util/cairo-trace/trace.c | 1 + 1 file changed, 1 insertion(+) commit c1d489b47404dcd48192b0adb0af87cda5618c2b Merge: e3415a319 c86b90a01 Author: Uli Schlachter Date: Fri Nov 20 16:07:27 2020 +0000 Merge branch 'empty-delta-arrays' into 'master' cff: Allow empty array of operands for certain operators See merge request cairo/cairo!39 commit c86b90a019487fb78c874062635621b8332ce4c2 Author: Marek Kasik Date: Fri Mar 27 19:39:46 2020 +0100 cff: Allow empty array of operands for certain operators Operators BlueValues, OtherBlues, FamilyBlues, FamilyOtherBlues, StemSnapH and StemSnapV have operands of type delta which can be a number or an array of delta-encoded numbers. This array can be empty according to freetype developers. This commit checks whether current operator is among those listed and permits empty operand in such case. src/cairo-cff-subset.c | 78 +++++++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 29 deletions(-) commit e3415a319dfde45cff4993cd861a3dde6a1b5d8e Merge: fda1f07bd 6eb3c9d36 Author: Uli Schlachter Date: Fri Nov 20 15:20:41 2020 +0000 Merge branch 'fix-iso8601_to_pdf_date_string' into 'master' Fix conversion from ISO 8601 to PDF date string Closes #392 See merge request cairo/cairo!35 commit 6eb3c9d3647d626418317977f84c5b8ac29ec5af Author: Sven Neumann Date: Tue Feb 11 11:24:16 2020 +0100 Fix conversion from ISO 8601 to PDF date string The code used to unintentionally drop the minutes from the timezone offset, see issue #392. This is now fixed. src/cairo-pdf-interchange.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fda1f07bdf8cc187eb81b0cb877e394ef74bdfaa Merge: 3e5115fde 5d97c1285 Author: Uli Schlachter Date: Tue Nov 17 17:24:05 2020 +0000 Merge branch 'meson-ci-require-gl-on-fedora' into 'master' ci: require opengl in meson fedora build See merge request cairo/cairo!79 commit e2ba2e00a97b9fc496d985572302ad57972a59d2 Author: Yongsu Park Date: Wed Mar 11 21:13:09 2020 +0900 win32: Make font dc thread local src/cairo-mutex-list-private.h | 1 + src/win32/cairo-win32-font.c | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) commit 156cd3eaaebfd8635517c2baf61fcf3627ff7ec2 Author: Bryce Harrington Date: Fri Nov 27 16:57:18 2020 -0800 Release 1.17.4 NEWS | 40 ++++++++++++++++++++++++++++++++++++++++ src/cairo-version.h | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) commit dfbc57f9a3b7036ed3a31ff47082c1331ae3e1a7 Author: Bryce Harrington Date: Fri Nov 27 17:00:16 2020 -0800 build: Update ssh url for cairographics.org build/Makefile.am.releasing | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5de0d6b97895364fe84a3a255a4bab1a9c140143 Author: Tim-Philipp Müller Date: Sun Nov 22 18:44:20 2020 +0000 ci: fix default options in meson ci Follow-up fix to !78 .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e9081a8f6745dcbacadf42d529b14fe86ab54b8 Author: Félix Poisot Date: Sat Nov 21 11:58:59 2020 +0000 The array introduced in bff47b43 isn't cleared on surface finish src/cairo-pdf-surface.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 825154fef78d6d0bd2fad4328a55ba95cafd12c0 Author: George Matsumura Date: Mon Aug 31 22:15:21 2020 -0600 cairo-trace: Fix escape character encoding in string literals This fixes a typo wherein both a return character and a tab character were encoded when only a return character was specified for encoding. Signed-off-by: George Matsumura util/cairo-trace/trace.c | 1 + 1 file changed, 1 insertion(+) commit 590122daa8f6daaf83ead7f16cb7adf732d25cd9 Author: Marek Kasik Date: Fri Mar 27 19:39:46 2020 +0100 cff: Allow empty array of operands for certain operators Operators BlueValues, OtherBlues, FamilyBlues, FamilyOtherBlues, StemSnapH and StemSnapV have operands of type delta which can be a number or an array of delta-encoded numbers. This array can be empty according to freetype developers. This commit checks whether current operator is among those listed and permits empty operand in such case. src/cairo-cff-subset.c | 78 +++++++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 29 deletions(-) commit c43ff33c43821c555756cc8281c9a2578c217723 Author: Sven Neumann Date: Tue Feb 11 11:24:16 2020 +0100 Fix conversion from ISO 8601 to PDF date string The code used to unintentionally drop the minutes from the timezone offset, see issue #392. This is now fixed. src/cairo-pdf-interchange.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5d97c12859fefca943e630ee5739ae5bf185099b Author: Tim-Philipp Müller Date: Tue Nov 17 16:55:47 2020 +0000 ci: require opengl in meson fedora build Follow-up to !78 .gitlab-ci.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 3e5115fde7086ffe2b73eab62d8b80c50f217f4a Author: Tim-Philipp Müller Date: Tue Nov 17 15:07:29 2020 +0000 meson: align gl backend option defaults with autotools Disable gl backend by default, just like autotools does: --enable-gl=[no/auto/yes] Enable cairo's OpenGL surface backend feature [default=no] --enable-glesv2=[no/auto/yes] Enable cairo's OpenGLESv2 surface backend feature [default=no] --enable-glesv3=[no/auto/yes] Enable cairo's OpenGLESv3 surface backend feature [default=no] .gitlab-ci.yml | 3 +++ meson_options.txt | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) commit 1a68c0bdfb63f8f7bb96e8a0bd577ca05e63936e Author: Nirbheek Chauhan Date: Mon Nov 16 20:14:18 2020 +0530 libpng.wrap: Bump to latest version subprojects/libpng.wrap | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit b5175fd8a6c8ff555e0a127e3fe42cdad241aad1 Author: Anton Danilkin Date: Wed Nov 11 17:33:31 2020 +0100 Fix testing in the full mode for PDF, PS and SVG backends Fix how offset, scale and transparency are handled. Also do the same change in the "win32-printing" backend as it has a copy of the code from PDS, PS and SVG backends. boilerplate/cairo-boilerplate-pdf.c | 33 ++++++++++------- boilerplate/cairo-boilerplate-ps.c | 50 ++++++++++++++++++-------- boilerplate/cairo-boilerplate-svg.c | 44 ++++++++++++++++------- boilerplate/cairo-boilerplate-win32-printing.c | 24 ++++++++----- 4 files changed, 103 insertions(+), 48 deletions(-) commit ab7b45feb701032c73ef0c190d963ee3ff76a815 Author: Nirbheek Chauhan Date: Tue Nov 10 16:18:50 2020 +0530 meson: Fix libpng fallback dependency variable The libpng subproject dependency variable name was wrong. It's libpng_dep: https://github.com/mesonbuild/libpng/blob/1.6.37/meson.build#L110 meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed98414686ede45a4f2302b4521dece51acdb785 Author: George Matsumura Date: Mon Aug 31 22:14:59 2020 -0600 build: Fix various compiler warnings This fixes a few compiler warnings that were encountered with gcc 9.3.0. Signed-off-by: George Matsumura INSTALL | 2 +- boilerplate/cairo-boilerplate-cogl.c | 5 +- boilerplate/cairo-boilerplate-egl.c | 2 - src/cairo-analysis-surface.c | 110 ++++++++++++++++------------- src/cairo-base64-stream.c | 1 + src/cairo-ft-font.c | 1 + src/cairo-path-fixed.c | 2 +- src/cairo-path-stroke-polygon.c | 2 +- src/cairo-path-stroke-traps.c | 3 +- src/cairo-pdf-surface.c | 22 +++--- src/cairo-svg-surface.c | 1 + src/cairo-type1-subset.c | 2 +- util/cairo-script/cairo-script-file.c | 1 + util/cairo-script/cairo-script-operators.c | 1 + util/cairo-script/cairo-script-scanner.c | 1 + util/cairo-trace/trace.c | 10 ++- 16 files changed, 90 insertions(+), 76 deletions(-) commit 618b13c436636149bb1c611a9f4a422f60c6476d Author: Nirbheek Chauhan Date: Wed Nov 4 14:50:52 2020 +0530 meson: Add dependencies to the declared libcairo dep That way when other projects consume our declared dep, they get transitive dependencies too based on what features cairo was built with. Without this, projects that build cairo as a subproject and also build, say, fontconfig as a subproject will fail to find cairo-ft.h (etc). src/meson.build | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit c3e48e63a2d2deeae6205ee746cc00c960c8c5c5 Author: Tim-Philipp Müller Date: Wed Sep 23 19:27:34 2020 +0100 meson: extract meson version from cairo-version.h Same as autotools does. Arguably it would be better to do it the other way round and generate cairo-version.h from the version in meson.build or configure.ac but for now let's do this so it's at least in sync with the autotools build and only one file has to be edited for releases. Makefile.am | 1 + meson.build | 2 +- version.py | 31 +++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) commit a67735010dd7576fac7d5e30e0933a3be313b75e Author: Michal Sudolsky Date: Tue Jul 21 20:02:24 2020 +0200 fix double free and failed assertions in cairo_scaled_font_destroy src/cairo-scaled-font.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f8967015029e2c1c59913a2a684c74f62b6e8979 Author: Xavier Claessens Date: Tue Oct 6 11:25:54 2020 -0400 meson: cairo-ft depends on fontconfig if available cairo-ft.h includes fontconfig.h when CAIRO_HAS_FC_FONT is defined, so it must appear in the pc file and the corresponding declare_dependency(). This fix build issue in harfbuzz when cairo and fontconfig are built as subproject. meson.build | 63 ++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 30 deletions(-) commit 70c01fb9d1399f802ba5799bb7a63f8c594a8cb6 Author: Xavier Claessens Date: Tue Oct 6 13:28:51 2020 -0400 cairo-gobject: Missing cairo include directories When cairo is a subproject and application uses libcairogobject_dep, it was missing include directories set in libcairo_dep. util/cairo-gobject/meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 084404cd150981e2d6e6613a4bfb55e7b13a0fb7 Author: Xavier Claessens Date: Mon Oct 5 10:32:27 2020 -0400 meson: Use pkgmod.generate() for all cairo pc files Also override each dependency so they can be used when cairo is used as subproject. meson.build | 234 ++++++++++++++++------------------------- src/meson.build | 8 +- util/cairo-gobject/meson.build | 8 ++ 3 files changed, 100 insertions(+), 150 deletions(-) commit e2c1b76d7109150bcce72ae6683c5f8f2739468c Author: Xavier Claessens Date: Sat Oct 3 22:39:59 2020 -0400 meson: Fix build when libpng is not found trace-to-xml.c needs cairo-xml.h which is only available when CAIRO_HAS_XML_SURFACE feature is built which is only available when both zlib and png are found. CAIRO_HAS_INTERPRETER only requires zlib. util/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a6ab2475906635fcc5ba0c73182fae73c4f7ee8 Author: Xavier Claessens Date: Fri Oct 2 17:28:18 2020 -0400 meson: Fix cross build with Android NDK Android NDK does not contain execinfo.h so malloc-stats.c cannot be built. util/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4ea2991a40d547d3c7800f862206741625a84417 Author: Tim-Philipp Müller Date: Thu Sep 24 12:42:54 2020 +0100 Retire dummy cairo-version.h header to fix meson subproject build It was originally added to make bisecting easier, but has outlived its usefuleness now. Going forward we'll have just a single cairo-version.h header file, the one with the real version numbers. This is needed to fix the case where cairo is being built as a Meson subproject, but also simplifies things in general. Fixes #421 Makefile.am | 3 --- RELEASING | 8 ++++---- acinclude.m4 | 2 +- boilerplate/cairo-boilerplate-test-surfaces.c | 2 -- boilerplate/cairo-boilerplate.c | 6 ------ boilerplate/check-link.c | 7 ------- cairo-version.h | 8 -------- doc/public/Makefile.am | 2 +- meson.build | 2 -- perf/cairo-analyse-trace.c | 2 -- perf/cairo-perf-micro.c | 2 -- perf/cairo-perf-trace.c | 2 -- src/Makefile.am | 2 -- src/Makefile.sources | 13 +------------ src/Makefile.win32 | 1 - src/cairo-version.c | 6 ------ src/cairo-version.h | 12 +++--------- src/check-link.c | 7 ------- src/meson.build | 1 + test/cairo-test-runner.c | 7 ------- 20 files changed, 11 insertions(+), 84 deletions(-) commit 96017adf652433584d2a81add601409c3a5d9cd5 Author: Jordan Petridis Date: Tue Jun 23 17:03:28 2020 +0300 port the CI setup to freedesktop/citemplates rework the whole CI setup to take advantage of citemplates for building managing the docker images. also add a meson build job and rework the ccache config to be shared across autotools and meson. The jobs will not share ccache artifacts though. https://who-t.blogspot.com/2020/03/its-templates-all-way-down.html .gitlab-ci.yml | 106 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 79 insertions(+), 27 deletions(-) commit 75f6e0cacfaa492d39cafe5b9289827b58305645 Author: Tim-Philipp Müller Date: Sat Jul 18 20:13:21 2020 +0100 ci: add native Windows MSVC build with Meson .gitlab-ci.yml | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) commit b4bbe9970ca623a9e81874bf8584d39ac9f43126 Author: Tim-Philipp Müller Date: Thu Sep 24 12:16:39 2020 +0100 autotools: dist Meson build system files So that people can build with Meson when using the tarballs. Fixes #424 Makefile.am | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 01683a5882ed8e4629158985da5422e26776d1d3 Author: Tim-Philipp Müller Date: Sat Sep 19 14:07:28 2020 +0100 meson: ensure srcdir doesn't contain autotools build artifacts .. such as config.h or other generated files such as cairo-features.h, as those might be accidentally included by the meson build and cause weird to debug build issues. Fixes #423 meson.build | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 9a3ad1df1cdca3559d0102918b7527005605df1a Author: George Matsumura Date: Mon Aug 31 01:36:20 2020 -0600 build: Include correct poll.h Including sys/poll.h when poll.h is available produces a compile warning on some systems, but only sys/poll.h is present on others such as AIX. This makes sure the most suitable poll.h is included in each situation. Signed-off-by: George Matsumura build/configure.ac.system | 2 +- meson.build | 1 + test/any2ppm.c | 9 +++++++-- test/cairo-test-trace.c | 10 +++++++++- util/cairo-sphinx/sphinx.c | 9 ++++++++- 5 files changed, 26 insertions(+), 5 deletions(-) commit 3b1bf9d6d3cbf2074eb347bc4cb33704f57d800d Author: Uli Schlachter Date: Sat Sep 5 10:52:25 2020 +0200 Fix/silence some warnings in 'make check' 'make check' currently fails with the following in src/test-suite.log (how can one tell automake not to hide the error message in a file?!?): FAIL: check-doc-syntax.sh ========================= Checking documentation for incorrect syntax ./cairo-cogl-surface.c: * cairo_cogl_pipeline_ts. On failure, both pointers will be set to ./cairo-cogl-surface.c:/* Mostly taken from cairo_vg_surface.c */ Error: some function names in the docs are not followed by parentheses. Fix this by searching for the following regexp in the above files: '^[^:]*:[/ ][*]\(\|[ ].*\)\([^#']\|^\)\<\(cairo_[][<>/0-9a-z_]*\>[^][<>(]\)' FAIL check-doc-syntax.sh (exit status: 1) This commit silences that. The fix is likely not correct, but since these are normal comments and not actual doc comments, it does not matter much. Signed-off-by: Uli Schlachter src/cairo-cogl-surface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 881e2579f0096e10bfde89544ea629733aec2533 Author: Uli Schlachter Date: Fri Aug 7 13:44:38 2020 +0200 Make the test suite succeed on GitLab CI This commit makes the test suite pass by simply ignoring failures. Not pretty, but better than teaching people to just ignore CI failures. At least some kinds of problems can still be caught. Originally, I wanted to only run a single test, but while investigating how to do this, I stumbled upon this undocumented environment variable. This seems less ugly and might allow looking at older build logs to figure out when something first broke. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 47881a965ed23a17a0056e99ccba2f1cc7325c9c Author: George Matsumura Date: Fri Sep 4 07:11:53 2020 -0600 cogl: Add build version requirement This ensures that build configuration for the cogl backend will fail if an insufficiently new version of cogl is present, making it easier to find the root cause of a build failure. Signed-off-by: George Matsumura configure.ac | 2 +- meson.build | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) commit c8d82cffdfba9c7c380fbdf120b3f6dd81e28d24 Author: George Matsumura Date: Sun Aug 30 20:57:04 2020 -0600 svg2png: Remove deprecated handle closing function call rsvg_handle_close is no longer required after creating a handle with rsvg_handle_new_from_file. It causes a deprecation warning during compilation as well. This change removes it. Signed-off-by: George Matsumura test/svg2png.c | 3 --- 1 file changed, 3 deletions(-) commit f2cb9ba49a222c6e17603f5fb8cbb02f82d0bbf7 Author: George Matsumura Date: Sun Aug 30 18:29:05 2020 -0600 meson: Fix musl build This constitutes few fixes that are necessary to compile correctly and reduce errors when using musl libc. Signed-off-by: George Matsumura src/cairo-misc.c | 3 +++ test/cairo-test-runner.c | 8 +++++--- test/cairo-test-trace.c | 7 ++++--- test/cairo-test.c | 10 ++++++---- test/cairo-test.h | 3 ++- util/cairo-trace/trace.c | 2 +- util/meson.build | 3 +-- 7 files changed, 22 insertions(+), 14 deletions(-) commit b87e53dc1cc4dd33fa391f3ee8db02394b44a742 Author: Ting-Wei Lan Date: Mon Aug 31 23:14:19 2020 +0800 meson: Fix undefined reference when bfd library is installed Add the missing file which is necessary when symbol lookup is enabled. util/cairo-trace/meson.build | 4 ++++ 1 file changed, 4 insertions(+) commit 2f39018c2c6661de11d5e7c3f385e7f0b338f5b1 Author: George Matsumura Date: Tue Aug 25 03:26:27 2020 -0600 meson: Remove unconditional disable of cogl backend build meson.build | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit e47d0de8d2f583c44e9f0aa57ff158e6307b7745 Author: George Matsumura Date: Sun Aug 23 21:23:01 2020 -0600 cogl: Remove filling with cogl-path This removes code that uses the cogl-path library, which was not used except when manually modifying a preprocessor flag. It could not use path caching, was slightly broken, and all of its functionality was provided better by different code paths. Signed-off-by: George Matsumura configure.ac | 2 +- src/Makefile.sources | 6 +- src/cairo-cogl-surface.c | 127 +++-------------------------------------- src/cairo-cogl-utils-private.h | 54 ------------------ src/cairo-cogl-utils.c | 126 ---------------------------------------- src/meson.build | 1 - 6 files changed, 11 insertions(+), 305 deletions(-) commit ecbd7ed1740485ccb2be29326ffa6e5ace1df2a7 Author: George Matsumura Date: Wed Aug 5 23:10:42 2020 -0600 cogl: Add new path cache This redesigns the path cache so that it does not mess with the context functions, thereby hopefully making it much more resilient to changes in the rest of cairo that change the way the default context works. It is also much simpler, and it is anticipated that it will be more maintainable. Performance in contrast to the old cache design speeds up most traces in cairo-perf-trace, and slows down only a lesser few by <20%. Signed-off-by: George Matsumura boilerplate/cairo-boilerplate-cogl.c | 12 +- src/Makefile.sources | 2 - src/cairo-cogl-context-private.h | 58 -- src/cairo-cogl-context.c | 1063 ------------------------------- src/cairo-cogl-private.h | 17 +- src/cairo-cogl-surface.c | 1133 +++++++++++++++------------------- src/cairo-debug.c | 4 - src/meson.build | 1 - 8 files changed, 498 insertions(+), 1792 deletions(-) commit 939da43c44ec28b278db36ab744a1176bbdfa890 Author: George Matsumura Date: Wed Aug 19 15:50:56 2020 -0600 cogl: Add minimal font support This adds very basic path-based font support to the cogl backend, improving cairo-perf-trace performance by 6x or more on many traces. This still is not the most desirable form of font support, which would resemble the texture-based glyph caching in the gl backend or use cogl-pango to automatically cache glyphs. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) commit 26c7103750b3578561140b522fcc7e77ccd1ab0b Author: George Matsumura Date: Wed Aug 19 15:41:02 2020 -0600 cogl: Fix reference counting bugs Signed-off-by: George Matsumura boilerplate/cairo-boilerplate-cogl.c | 19 +++++++++- src/cairo-cogl-gradient.c | 1 + src/cairo-cogl-surface.c | 71 +++++++++++++++++++++++++----------- 3 files changed, 68 insertions(+), 23 deletions(-) commit 20d475042cdd41603e0a0752779c6f74a7fae544 Author: George Matsumura Date: Wed Jul 29 14:07:41 2020 -0600 cogl: Increase reading performance of RGB-only surfaces This makes it so that RGB24 surfaces are represented in such a way that does not require expensive format conversions during pixel packing and unpacking. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) commit 4068fe0026c32bd04d2405956347544842fc11a8 Author: George Matsumura Date: Wed Jul 29 04:53:07 2020 -0600 cogl: Support mirroring of gradients if no hardware support exists This mirrors a linear gradient by dobling its size and reflecting it in the case that hardware does not support mirrored repeating. Signed-off-by: George Matsumura src/cairo-cogl-gradient-private.h | 1 + src/cairo-cogl-gradient.c | 61 ++++++-- src/cairo-cogl-surface.c | 287 ++++++++++++++++++++------------------ 3 files changed, 202 insertions(+), 147 deletions(-) commit 9b07a5379bac68565188ac9ea05970c1c4ae31cd Author: George Matsumura Date: Tue Jul 28 02:39:31 2020 -0600 cogl: Limit size of journal This makes sure the journal is flushed after it reaches a certain size, so that very large amounts of memory are not consumed if an explicit flush is not triggered. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) commit 08d6c7de2db2c467da6e210f0b0f3565ba6f50be Author: George Matsumura Date: Sun Jul 26 10:55:20 2020 -0600 cogl: Support source surfaces without an alpha component This ensures that if the source surface does not have an alpha component (such as those with format RGB24), it is not blended as if it does. Signed-off-by: George Matsumura src/cairo-cogl-private.h | 12 ++- src/cairo-cogl-surface.c | 265 ++++++++++++++++++++++++++++++++--------------- src/cairo-cogl.h | 3 +- 3 files changed, 194 insertions(+), 86 deletions(-) commit bb84bb650ddc1724bc3abb0ee8da8fa9ae34c9a4 Author: George Matsumura Date: Sat Jul 25 02:14:13 2020 -0600 cogl: Ensure onscreen framebuffers have an alpha component if required Prior to this change, cogl often queried GLX so that it returned a framebuffer that could not support an alpha component. Signed-off-by: George Matsumura boilerplate/cairo-boilerplate-cogl.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) commit 02371a714e3fe7500b7cfca5d9ba824aeb3f4695 Author: George Matsumura Date: Fri Jul 24 21:27:13 2020 -0600 cogl: Improve support for hardware without mirrored repeating Signed-off-by: George Matsumura src/cairo-cogl-context.c | 10 +- src/cairo-cogl-private.h | 11 +- src/cairo-cogl-surface.c | 1031 ++++++++++++++++++++++++++++++---------------- src/cairo-cogl.h | 3 + 4 files changed, 695 insertions(+), 360 deletions(-) commit 916408481f3123bc6fc0800c90d910716046ec30 Author: George Matsumura Date: Sun Jul 19 15:22:24 2020 -0600 cogl: Move framebuffer creation functionality out of boilerplate In order to be more consistent with backends such as gl, support for creating a surface from content, width, and height parameters was moved into the backend itself. The option to pass cairo-cogl a framebuffer to create a texture from still exists, just now it is not the only option. Signed-off-by: George Matsumura boilerplate/cairo-boilerplate-cogl.c | 63 ++++-------- src/cairo-cogl-surface.c | 182 +++++++++++++++++++++++++++++------ src/cairo-cogl.h | 19 +++- 3 files changed, 187 insertions(+), 77 deletions(-) commit 9248ba1419b4164207afb982b4d3f9e43ddffe42 Author: George Matsumura Date: Sat Jul 18 19:03:28 2020 -0600 cogl: Properly support unbounded operators This makes it so that operators requiring transparent values to be used outside of the bounds of the source and/or mask textures will trigger a second rendering of transparent pixels. Signed-off-by: George Matsumura src/cairo-cogl-context.c | 90 ++- src/cairo-cogl-gradient-private.h | 10 +- src/cairo-cogl-gradient.c | 20 +- src/cairo-cogl-private.h | 4 +- src/cairo-cogl-surface.c | 1474 ++++++++++++++++++------------------- src/cairo-cogl-utils-private.h | 4 +- src/cairo-cogl-utils.c | 4 +- src/cairo-cogl.h | 2 +- 8 files changed, 813 insertions(+), 795 deletions(-) commit b258f0203c4365a67e6cc88763608737badb4580 Author: George Matsumura Date: Wed Jul 15 12:34:12 2020 -0600 cogl: Handle negative stride images correctly This adds correct support for negative stride images by uploading them to a texture in their upside-down orientation and then vertically inverting the matrix with which they are read, which is required because OpenGL (and therefore cogl) cannot pack pixels with a negative stride. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 49 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 5 deletions(-) commit 20cc7ad16ea2fe95499813b93732b7d7bdefa4dc Author: George Matsumura Date: Wed Jul 15 07:51:31 2020 -0600 cogl: Avoid duplicate representations of the path Signed-off-by: George Matsumura src/cairo-cogl-context.c | 65 +--- src/cairo-cogl-surface.c | 883 +++++++++++++++++++++++++++++++++-------------- 2 files changed, 632 insertions(+), 316 deletions(-) commit 9e473db58d22cc181a4a3388c72666ce28cdb8b8 Author: George Matsumura Date: Sat Jul 11 15:02:34 2020 -0600 cogl: Flush the path before calling functions that require it Prior to this change, API functions like path_exents returned incorrect results if the cogl-specific representation of rectangular paths was being used. Signed-off-by: George Matsumura src/cairo-cogl-context.c | 177 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 159 insertions(+), 18 deletions(-) commit b7e1551814821a9288cde42a6e000fb1a887ee6f Author: George Matsumura Date: Sat Jul 11 15:01:32 2020 -0600 cogl: Fix rectangular filling fast path Prior to this, the rectangular filling fast path passed arguments to _cairo_cogl_journal_log_rectangle as if they represented the coordinates of two opposite points on the rectangle, when the arguments actually represent a rectangle with the x and y coordinates of one point and the width and height of the rectangle. Signed-off-by: George Matsumura src/cairo-cogl-context.c | 2 +- src/cairo-cogl-surface.c | 11 +++-------- 2 files changed, 4 insertions(+), 9 deletions(-) commit 1bb048af24d68902981c2af0196fe4042b7e2a9f Author: George Matsumura Date: Fri Jul 10 06:05:48 2020 -0600 cogl: Support raster sources This adds supporte for raster sources using the same method that is used to support radial gradient and mesh sources. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit f3d2623046b934eb2322af45feec3f6ff37e52d4 Author: George Matsumura Date: Fri Jul 10 03:26:03 2020 -0600 cogl: Fix very small surfaces in boilerplate Prior to this change, the boilerplate code crashed when given surface dimensions less than 1. This fixes such behaviour by rounding the dimensions up to 1, which is also done by the boilerplate code for several other backends. Signed-off-by: George Matsumura boilerplate/cairo-boilerplate-cogl.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 8f0f371b873ed491ba9492fd0a6bad2695de24a6 Author: George Matsumura Date: Fri Jul 10 02:57:49 2020 -0600 cogl: Use less memory during recording surface replaying Many of the tests in the test suite do many replays of different small parts of a single surface. When combined with the cogl backend's journaling mechanism, this consumes very large amounts of memory, as the entire surface is allocated for each replay. This changes this behaviour so that only the portion of the surface that will be used is allocated. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 62 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 13 deletions(-) commit 641ea48b66c3ee96138366d64d50dd40c5d29dc1 Author: George Matsumura Date: Wed Jul 8 20:49:35 2020 -0600 cogl: Support more unbounded operators Due to recent changes, all unbounded Porter-Duff compositing operators can be properly supported in addition to IN. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 29 ++--------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) commit e2e494b9ff1d3ba57d21f4cf23187b940cfa0968 Author: George Matsumura Date: Wed Jul 8 20:48:00 2020 -0600 cogl: Fix rectangle filling conditions Prior to this change, the context functions were using the accelerated rectangle-filling path even if there was a preexisting rectangular path, producing incorrect results. Signed-off-by: George Matsumura src/cairo-cogl-context.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit bb02ea2b4f68b202682383f2517e33c0d66a9567 Author: George Matsumura Date: Wed Jul 8 06:58:53 2020 -0600 cogl: Correct usage of clip boxes This changes the interpretation of multiple boxes in the clip from using the intersection of the multiple boxes to using the union of the multiple boxes, which corrects many results in the test suite. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 273 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 186 insertions(+), 87 deletions(-) commit 7319feb642ecdf21315c8e4a6e211ab27b7dc833 Author: George Matsumura Date: Sun Jul 5 17:34:54 2020 -0600 cogl: Support CAIRO_EXTEND_NONE correctly Prior to this change, CAIRO_EXTEND_NONE was handled the same way as CAIRO_EXTEND_PAD, which produced incorrect results in many tests. This fixes such behaviour by created a per-source and per-mask clip that is applied so that areas outside the bounds of the source or mask textures are not sampled during drawing. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 361 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 253 insertions(+), 108 deletions(-) commit 98eaa778b70715e57cd3ce927b71a9ffdcd0f39f Author: George Matsumura Date: Sun Jul 5 00:04:43 2020 -0600 cogl: Support combinations of mask and source patterns correctly Prior to this change, the set of template pipelines did not properly apply to the full combination of mask and source patterns, which could be either textures or solids. Signed-off-by: George Matsumura src/cairo-cogl-private.h | 29 ++++-- src/cairo-cogl-surface.c | 259 +++++++++++++++++++++++++++++++---------------- 2 files changed, 190 insertions(+), 98 deletions(-) commit 97a98d9145f4dea411a2e42f827a4e50b02edcf1 Author: George Matsumura Date: Fri Jul 3 23:48:35 2020 -0600 cogl: Fix aliased vertex buffer offset This fixes a bug in which the texture coordinate attributes were being read from the wrong location in the mapped buffer, due to a typo in the original code. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e810fe2d179f9f5aed4a551447ca312ee8029c7 Author: George Matsumura Date: Wed Jul 1 14:53:28 2020 -0600 cogl: Fix handling of translated pattern matrices Due to how cairo matrix math works, the x0 and y0 elements of the texture matrix were not being normalized, leading to incorrect results in several tests. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 76 ++++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 32 deletions(-) commit 1dce0112efb2ef007983c623348bce68c8914682 Author: George Matsumura Date: Tue Jun 30 19:39:40 2020 -0600 cogl: Trailing whitespace fix Signed-off-by: George Matsumura src/cairo-cogl-context.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit fc8e68b37ae07dce6b5868ae18e02eff9b04382e Author: George Matsumura Date: Tue Jun 30 19:32:22 2020 -0600 cogl: Fix crash when specifying only mask surface Cogl enters into an infinite recursion if a texture is specified for layer 1 of a pipeline but no texture is specified for layer 0. This works around the bug by setting the mask texture on layer 0 if there is no source texture. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 75d843208cf33b8ba0273745582bcaabf900ea24 Author: George Matsumura Date: Mon Jun 29 13:37:20 2020 -0600 cogl: Move context, device, and surface members to most fitting places The buffer stack was moved from the surface to the device, as mapped buffers are shared across all surfaces using the device and more than one surface may be doing so. Stemming from this, if a surface tries to map a buffer without first unmapping one that has been mapped by another surface, it will trigger an error. The parent backend functions were moved from the device to the context, as it is possible that the context creation function could be passed a non-cogl device. Prior to this change, many of the subsurface tests segfaulted. Signed-off-by: George Matsumura boilerplate/cairo-boilerplate-cogl.c | 10 +- src/cairo-cogl-context-private.h | 8 +- src/cairo-cogl-context.c | 256 ++++++++++++++++++++--------------- src/cairo-cogl-gradient.c | 19 ++- src/cairo-cogl-private.h | 18 +-- src/cairo-cogl-surface.c | 186 +++++++++++++------------ 6 files changed, 269 insertions(+), 228 deletions(-) commit a3233bc5df49a8fee4ba07ad56b9cc67e8bfc744 Author: George Matsumura Date: Sun Jun 28 20:00:47 2020 -0600 cogl: Handle recording surface sources properly Previously, if an unbounded recording surface was given as the source, the program triggered an assertion failure in the recording surface code, as acquire_source_image cannot be used on the surface in this case. This adds a new path to deal with such an unbounded source surface. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) commit 97c766f8fe6a547b2f1389c59e8a6260c1531539 Author: George Matsumura Date: Wed Jun 24 05:17:04 2020 -0600 cogl: Convert int to fixed-point in rectangle painting fallback Previously, the rectangle fallback path in surface_paint was incorrectly passing and int to a function that required a fixed-point number. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit ceffa65fb0411b569690f56788285970ae275c25 Author: George Matsumura Date: Sun Jun 21 03:32:44 2020 -0600 cogl: Account for new representations of framebuffer types With the new cogl API, casting the framebuffer into offscreen and onscreen types with the provided macros is a deprecated behavior. Signed-off-by: George Matsumura boilerplate/cairo-boilerplate-cogl.c | 35 +++++------------------------------ src/cairo-cogl.h | 4 ++-- 2 files changed, 7 insertions(+), 32 deletions(-) commit 1ada7c9aa6adc70dc58b6678df5d95268f9ecc29 Author: George Matsumura Date: Sat Jun 20 19:10:29 2020 -0600 cogl: Fix push_group and pop_group context functions Before this change, there was the possibility of context functions only meant for the cogl surface backend being used on a non-cogl surface. Signed-off-by: George Matsumura src/cairo-cogl-context.c | 143 ++++++++++++++++++++++++++++++++++------------- src/cairo-cogl-surface.c | 5 +- 2 files changed, 108 insertions(+), 40 deletions(-) commit d1dec1b3842800b336f4bda27e7fc9943ed27c16 Author: George Matsumura Date: Thu Jun 18 23:22:56 2020 -0600 cogl: Fix passing wrong type to _cairo_cogl_clip_push_box Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit bda0f90d6e1368e2414235ef84da2dc5390d89cd Author: George Matsumura Date: Thu Jun 18 18:13:37 2020 -0600 cogl: Correct behavior of boilerplate surface finishing functions Without this, a buffer-swapping function only usable on onscreen framebuffers would have been used on offscreen framebuffers. Signed-off-by: George Matsumura boilerplate/cairo-boilerplate-cogl.c | 29 +++++++++++++++++++++++------ src/cairo-cogl-surface.c | 6 +++++- 2 files changed, 28 insertions(+), 7 deletions(-) commit 78b00a32132a113cb8d72c4b5d2d4f9f935867d4 Author: George Matsumura Date: Thu Jun 18 00:21:36 2020 -0600 cogl: Handle framebuffer formats better in case contents are unknown Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit fd6de9820e50b21c0aca15e71b5bbadca9e26358 Author: George Matsumura Date: Wed Jun 17 13:28:47 2020 -0600 cogl: Accommodate new context functions In order to satisfy the runtime check that accounts for new API functions that modify the transformation matrix, the new functions for translation from backend to user coordinates must be accounted for. Signed-off-by: George Matsumura src/cairo-cogl-context.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09092bf884bdb6ff25173ca91b2579620fd58b09 Author: George Matsumura Date: Wed Jun 17 04:20:10 2020 -0600 cogl: Add dependency on cogl-path The path functions in the cogl API have now been split into a separate one which builds from the same codebase. In order to compile with this change, the new library has to be added as an explicit dependency. Signed-off-by: George Matsumura configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6250e1a8433cca797fb3ca106495f5d779882015 Author: George Matsumura Date: Wed Jun 17 03:47:02 2020 -0600 cogl: Use new separate functions for offscreen and onscreen framebuffers The old boilerplate code no longer worked due to the deprecation of functions for swapping the buffers that it used. Signed-off-by: George Matsumura boilerplate/cairo-boilerplate-cogl.c | 39 +++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 16 deletions(-) commit 7135ca2091b0c69b2f9aa2e9d5986d10a86d6103 Author: George Matsumura Date: Wed Jun 17 02:37:25 2020 -0600 cogl: Futher changes to match new cogl-experimental public API These are more changes required to match the new backwards-incompatible API of cogl-experimental. Signed-off-by: George Matsumura src/cairo-cogl-gradient.c | 47 +++++----- src/cairo-cogl-private.h | 1 - src/cairo-cogl-surface.c | 231 +++++++++++++++++++++++++++++----------------- 3 files changed, 170 insertions(+), 109 deletions(-) commit 418ad9db62356aa9dbf2e77ea7d5c3be88447f3b Author: George Matsumura Date: Mon Jun 15 07:44:20 2020 +0000 cogl: Update to match changed cogl-experimental public API This is the first part of updates to match the backwards-incompatible changes that have been made in the cogl-experimental public API since this backend last worked. Signed-off-by: George Matsumura src/cairo-cogl-surface.c | 54 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 17 deletions(-) commit 88d773e6275474364c29153ca3027631f3f0583f Author: Tim-Philipp Müller Date: Fri Jul 31 14:42:50 2020 +0100 meson: add summary and flip some options to disabled by default .. to match autotools. meson.build | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++----- meson_options.txt | 12 +++++----- 2 files changed, 69 insertions(+), 10 deletions(-) commit 89d4c22140842dd1640a3a9a401ce0d842e9a923 Author: Tim-Philipp Müller Date: Fri Aug 7 12:13:10 2020 +0100 meson: update fontconfig wrap and add gperf wrap Update fontconfig wrap to upstream now that it's been merged. Add gperf wrap which is needed for fontconfig, same as in the upstream fontconfig repo (this can't be put into wrapdb yet because it requires changes to source files). subprojects/.gitignore | 3 ++- subprojects/fontconfig.wrap | 6 +++--- subprojects/gperf.wrap | 5 +++++ 3 files changed, 10 insertions(+), 4 deletions(-) commit 7cb362d5861df09b990ea81bbbb66099cab3a2a5 Author: Tim-Philipp Müller Date: Fri Aug 7 00:18:17 2020 +0100 meson: fix cairo-script-interpreter library name Fixes #418 util/cairo-script/meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit efc508bdb97d249592af226c7abe0a2365b1731d Author: Nirbheek Chauhan Date: Thu Aug 6 02:06:45 2020 +0530 meson: Fix win32 libs in cairo-win32*.pc files Fixes https://gitlab.freedesktop.org/cairo/cairo/-/issues/419 meson.build | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 596a82f2d185b101bd74645492821fe2f9e0daa0 Author: Mathieu Duponchelle Date: Mon May 21 20:08:22 2018 +0200 Add meson build definitions Co-Authored by: Nirbheek Chauhan lb90 Tim-Philipp Müller boilerplate/make-cairo-boilerplate-constructors.py | 38 + boilerplate/make-cairo-boilerplate-constructors.sh | 2 + boilerplate/meson.build | 43 + configure.ac | 11 + meson-cc-tests/atomic-ops-cxx11.c | 3 + meson-cc-tests/atomic-ops-gcc-legacy.c | 3 + meson-cc-tests/ft_has_color.c | 7 + meson-cc-tests/ipc_rmid_deferred_release.c | 18 + meson-cc-tests/mkdir-variant-1.c | 12 + meson-cc-tests/mkdir-variant-2.c | 12 + meson-cc-tests/pthread.c | 35 + meson.build | 918 +++++++++++++++++++++ meson_options.txt | 34 + src/meson.build | 322 ++++++++ subprojects/.gitignore | 10 + subprojects/expat.wrap | 10 + subprojects/fontconfig.wrap | 5 + subprojects/freetype2.wrap | 5 + subprojects/glib.wrap | 5 + subprojects/libffi.wrap | 4 + subprojects/libpng.wrap | 10 + subprojects/pixman.wrap | 5 + subprojects/proxy-libintl.wrap | 4 + subprojects/zlib.wrap | 10 + test/make-cairo-test-constructors.py | 37 + test/meson.build | 627 ++++++++++++++ test/pdiff/meson.build | 21 + util/cairo-fdr/meson.build | 11 + util/cairo-gobject/meson.build | 25 + util/cairo-missing/meson.build | 11 + util/cairo-script/meson.build | 65 ++ util/cairo-sphinx/meson.build | 26 + util/cairo-trace/meson.build | 30 + util/meson.build | 66 ++ 34 files changed, 2445 insertions(+) commit a75f8df95761bf88b54c326c5312117ea5073010 Author: Mathieu Duponchelle Date: Thu May 31 16:07:57 2018 -0700 Fix build on Windows with recent versions of MSVC - vsnprintf and snprintf are available since vs2015 - define ISREG if not provided - guard unistd.h include with HAVE_UNISTD_H - isnan() is available after vs2010 src/cairo-compiler-private.h | 6 ++++-- test/bitmap-font.c | 6 ++++++ test/cairo-test.h | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) commit 91b5761acd8ddb70993de4c9338549caf617a960 Merge: b55e491d6 1a6a26be5 Author: Uli Schlachter Date: Mon Jul 20 18:42:01 2020 +0200 Merge branch 'master' of gitlab.freedesktop.org:sgerwk/cairo commit b55e491d67e95d7e6ef33f18a239eb6a9a49b7a2 Merge: 4777f9cd5 61cd11a39 Author: Uli Schlachter Date: Mon Jul 20 18:33:46 2020 +0200 Merge branch 'invalid-free-crash' of gitlab.freedesktop.org:psychon/cairo commit 4777f9cd5f67dcab6e750092630aaace8607c4b5 Merge: e0f9db945 c93ca40f6 Author: Uli Schlachter Date: Mon Jul 20 18:32:33 2020 +0200 Merge branch 'fix-build-rule-for-font-variations' of gitlab.freedesktop.org:mpsuzuki/cairo commit e0f9db9459b2eee16507bd8cc06ef668f14291db Merge: bf1219919 cb2357f48 Author: Uli Schlachter Date: Mon Jul 20 18:30:45 2020 +0200 Merge branch 'master' of gitlab.freedesktop.org:ffontaine/cairo commit bf121991964b10ea06ca8c991bead5857509ce5a Merge: c4fd00c2c 23b6e8bb5 Author: Uli Schlachter Date: Mon Jul 20 18:29:39 2020 +0200 Merge branch 'master' of gitlab.freedesktop.org:trofi/cairo commit c4fd00c2c4111dfbf1aeb81ed04de4bf6e5efc9f Author: Mathieu Duponchelle Date: Wed May 30 17:59:18 2018 +0200 script-surface: Fix unitialized variable compiler warning gcc doesn't warn about this because status is potentially initialized in a loop. src/cairo-script-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bfa00bc3d7d8754bce5f115ac2280c42e6447ba0 Author: Mathieu Duponchelle Date: Tue May 29 19:44:45 2018 +0200 cairo-qt-surface: fix arguments of _cairo_surface_init() This is broken since b1192beac7c5b56a8ff356d20af5ebfb65404109 (2015!) src/cairo-qt-surface.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 1676935768b888b3e4038b6dddb4f6362c137345 Author: Mathieu Duponchelle Date: Tue May 29 17:56:16 2018 +0200 raster-source: fix when builddir != srcdir When the build dir is different from the source dir, "png.png" is not a valid path. As we can't dispose of an allocated filename, we add an atexit handler. test/raster-source.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 4645ecf3f89de9e25fc83d7c0fdb89188de7a2a3 Author: Mathieu Duponchelle Date: Tue May 29 17:54:02 2018 +0200 record tests: fix when builddir != srcdir When builddir != srcdir, cairo_test_create_pattern_from_png needs a non-NULL ctx to work with. test/cairo-test.c | 8 ++++++++ test/cairo-test.h | 3 +++ test/record.c | 2 +- test/record1414x.c | 2 +- test/record2x.c | 2 +- test/record90.c | 2 +- test/recordflip.c | 2 +- 7 files changed, 16 insertions(+), 5 deletions(-) commit 23b6e8bb5798c77550da613fadc3da8b3be14573 Author: Sergei Trofimovich Date: Sun Jun 14 09:58:52 2020 +0100 build/aclocal.float.m4: detect 'strings' with AC_CHECK_TOOL This way all binutils tools are detected with $CHOST prefix if exist. And strings is allowed to be substituted with STRINGS environment override, so 'llvm-strings' (or other) alternative can be used. Bug: https://bugs.gentoo.org/726200 Signed-off-by: Sergei Trofimovich build/aclocal.float.m4 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit aee96d175d8349945a6d1948a56abd4b4ec6ad84 Author: Uli Schlachter Date: Sun Feb 17 17:43:39 2019 +0100 Initialize mutexes in _cairo_ft_unscaled_font_map_lock() This function is reachable via cairo_ft_font_face_create_for_ft_face() -> _cairo_ft_unscaled_font_create_from_face() -> _cairo_ft_unscaled_font_create_internal() -> _cairo_ft_unscaled_font_map_lock(). Thus, it could happen that nothing initialized mutexes before this code runs. Signed-off-by: Uli Schlachter src/cairo-ft-font.c | 2 ++ 1 file changed, 2 insertions(+) commit 0ae4e6a8554ce7cc13ba0f23c516ddd7622f660a Merge: d66baf8ec a68c19680 Author: Uli Schlachter Date: Fri Feb 14 16:58:15 2020 +0100 Merge branch 'ft-leak' of gitlab.freedesktop.org:carlosgc/cairo commit d66baf8ecd880ec9b0e282025a77fa223299d52a Merge: 2982adec7 10760d29d Author: Uli Schlachter Date: Wed Feb 12 17:44:18 2020 +0100 Merge branch 'fix-xml-unclosed-scaled-font-element' of gitlab.freedesktop.org:mpsuzuki/cairo commit cb2357f481396820ec954dc4b69eafc01a8d162a Author: Fabrice Fontaine Date: Mon Feb 3 21:24:25 2020 +0100 test: fix build when SHOULD_FORK is false The code in test/cairo-test-runner.c properly takes into account platforms that do have fork() support, and uses the SHOULD_FORK define to know whether fork is available or not. However, this SHOULD_FORK macro is used to guard the inclusion of , which is needed to get the prototype of other functions (namely readlink and getppid), that are used in portions of this file not guarded by SHOULD_FORK. Signed-off-by: Thomas Petazzoni [Retrieved from: https://git.buildroot.net/buildroot/tree/package/cairo/0001-fix-nofork-build.patch] Signed-off-by: Fabrice Fontaine test/cairo-test-runner.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2982adec7698ef6cc55b6eb27f28200a95013cdc Author: luzpaz Date: Fri Dec 20 11:10:19 2019 +0000 Fix documentation typo in src/cairo-surface.c src/cairo-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a6a26be5641cc3ebd3863df730b2d2db8227ac0 Author: sgerwk Date: Mon Oct 14 12:25:43 2019 +0200 a surface may also be checked for status after finishing src/cairo-surface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f93fc72c0c3e158982740015304389192ce8a567 Author: Heiko Lewin Date: Sat Oct 12 07:45:29 2019 +0000 Delete fill_rectangles_shader on device finish src/cairo-gl-shaders.c | 1 + 1 file changed, 1 insertion(+) commit d0dccb92c520556aaa02bd1fdf8f2922cef00292 Author: Jan Alexander Steffens (heftig) Date: Sat Oct 5 14:07:28 2019 +0200 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(-) commit 52a7c79fd4ff96bb5fac175f0199819b0f8c18fc Author: Matthias Clasen Date: Fri Jul 26 17:29:17 2019 -0400 Fix vertical subpixel positioning We need to apply the Y subpixel phase negated, since we flip the Y axis later. src/cairo-ft-font.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit aa263f881fb158202f32a7e3a8c6351dbe3626b8 Author: Matthias Clasen Date: Thu May 30 07:30:55 2019 -0400 Fix a thinko in composite_color_glyphs We can't just move around the contents of the passed-in string, we need to make a copy. This was showing up as memory corruption in pango. See https://gitlab.gnome.org/GNOME/pango/issues/346 src/cairo-surface.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit e4a79db0108be6a2b06dfce51a44bcbdead66ebd Author: Matthias Clasen Date: Sat May 25 00:35:04 2019 +0000 xlib compositor: Support subpixel positioning As for the image compository, support a 4x4 subpixel grid. src/cairo-xlib-render-compositor.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 6fd4222ab00c3b93f038172a8c9d48375c5f86f0 Author: Matthias Clasen Date: Fri May 24 20:40:00 2019 +0000 Add a testcase for subpixel positioning With the image compositor, you can see different phases. The XLib compositor always uses the same glyph rendering. test/Makefile.sources | 1 + test/text-subpixel.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) commit ea9329215d3431ded51a71b724baf0edc25ad633 Author: Matthias Clasen Date: Sat Jul 28 12:25:47 2018 +0000 image compositor: Support subpixel positioning Support subpixel positioning with a 4x4 subpixel grid. When compositing glyphs in the image compositor, we store the subpixel phases in the high bits of the glyph index. The _cairo_scaled_glyph_index() macro has been updated to discard these bits. By storing the phases in the glyph index, the glyph cache just keeps working. When loading a glyph, the Freetype font backend shifts the outline according to the phases. src/cairo-ft-font.c | 10 ++++++++++ src/cairo-image-compositor.c | 13 +++++++++++-- src/cairoint.h | 5 ++++- 3 files changed, 25 insertions(+), 3 deletions(-) commit bab53d91a8543e2ddb15f9dce98ebb3f9bcd5d22 Author: Florian Müllner Date: Mon Mar 11 03:51:40 2019 +0100 ft-font: Fix color font support FT_PIXEL_MODE_BGRA is an enum member, not a define, so it always appears as 0 in the preprocessor conditions added in commit c0ed8ce1a11. There is an existing define for color font support, use that instead. src/cairo-ft-font.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit dfe3aa6d88ad548b729cf8e5b5ff9d80fbb0e412 Author: Antony Lee Date: Mon Feb 11 08:48:56 2019 +0100 Fix off-by-one bug in tor22-scan-converter. This makes the implementation in tor22-scan-converter match the one in tor-scan-converter. src/cairo-tor22-scan-converter.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 82a2477a4a305cdcd8f331e6539db8742e0829e6 Author: Massimo Valentini Date: Fri Jan 16 12:56:04 2015 +0100 add a test to exercise tor22 spans allocation code path test/Makefile.sources | 1 + test/bug-75705.c | 32 ++++++++++++++++++++++++++++++++ test/reference/bug-75705.ref.png | Bin 0 -> 97 bytes 3 files changed, 33 insertions(+) commit c93ca40f60bc839c0193a572e97ec2d297190c95 Author: suzuki toshiya Date: Wed Apr 10 01:07:16 2019 +0000 regrouping of test sources with new 'fc_font_test_sources' group test/Makefile.am | 3 ++- test/Makefile.sources | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) commit 10760d29d140330102846e83c92e0bc6a9f359a4 Author: suzuki toshiya Date: Mon Apr 8 02:52:51 2019 +0000 xml: fix unclosed element a closing tag has been missing, mistakenly an opening tag has been emitted. See discussion in: https://lists.cairographics.org/archives/cairo/2018-December/028822.html https://lists.cairographics.org/archives/cairo/2019-January/028828.html src/cairo-xml-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d331c69f65477b01859862f783081352f318c6d2 Author: suzuki toshiya Date: Mon Apr 8 02:56:50 2019 +0000 Makefile.sources: move font-variations.c (a test code for Variation Font with FreeType2 functions) from test_sources to ft_font_test_sources, to restrict the test to the case with FreeType2 backend. See discussion in https://lists.cairographics.org/archives/cairo/2019-April/028858.html test/Makefile.sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 269522fbe999b44e3f18179d59f7c835620894eb Author: Uli Schlachter Date: Sun Feb 17 09:26:11 2019 +0100 .gitlab-ci.yml: Temporarily switch to Fedora rawhide Since commit a34cb719cd9cb4f0, we need pixman >= 0.36, which is not yet in the latest Fedora. Thus, this switches to Fedora rawhide to make things work again. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 81102cc214814cac8c99fed08a877d8f38312e51 Author: Vasilij Schneidermann Date: Thu Feb 28 09:38:09 2019 +0100 Disable sphinx build if PNG support is disabled configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 250ae25b0a671b9de7313c042710bbb6760248c4 Author: Federico Mena Quintero Date: Tue Mar 12 10:19:36 2019 -0600 Don't use deprecated rsvg_set_default_dpi() Use rsvg_handle_set_dpi() instead. test/any2ppm.c | 5 +---- test/svg2png.c | 3 +-- 2 files changed, 2 insertions(+), 6 deletions(-) commit 2d1a137f3d27b60538c58b25e867288c7b0b61bc Author: Bryce Harrington Date: Sun Mar 3 00:01:34 2019 -0800 Revert "clip-boxes: Drop too-early return" This reverts commit cb871c6c692af68d8e0bf9e26472af45435f8a2c. The original code is badly, but removing the early return leads to crashes. This code will need a lot more attention to get right, for now at least go back to the original behavior. Fixes: https://gitlab.freedesktop.org/cairo/cairo/issues/358#note_125270 src/cairo-clip-boxes.c | 1 + 1 file changed, 1 insertion(+) commit 61cd11a39095cb51b9e87beba10905e895567151 Author: Uli Schlachter Date: Tue Feb 12 17:46:12 2019 +0100 steal boxes: Fix an invalif free() exposed by cb871c6c Commits cb871c6c made the function _cairo_clip_reduce_to_boxes() actually do something instead of being a no-op. This exposed a latent bug in cairo that was so far just not hit due to luck. The function _cairo_clip_steal_boxes() removes the boxes from a clip and gives them to a cairo_boxes_t. _cairo_clip_unsteal_boxes() undoes this operation. For efficiency reasons, cairo_clip_t contains an embedded cairo_box_t that is used when the clip has only one box to avoid a memory allocation. Thus, _cairo_clip_unsteal_boxes() must be called on the same clip that was given to _cairo_clip_steal_boxes(), or otherwise a clip could end up to the embedded box of another instance of cairo_clip_t. This is exactly what was happening here. For example, cairo-xcb can replace extents->clip with another clip via the call chain _cairo_xcb_render_compositor_paint() (which is where boxes are stolen) -> _clip_and_composite_boxes() -> trim_extents_to_traps() -> _cairo_composite_rectangles_intersect_mask_extents(). This function replaced the clip with the result of _cairo_clip_reduce_for_composite() and frees the old clip. At this point, the boxes that were stolen previously become invalid / become a dangling pointer. The crash later on is just one of the side effects of this. This commit fixes this problem by treating embedded boxes specially in _cairo_clip_steal_boxes() and _cairo_clip_unsteal_boxes(): The cairo_boxes_t instance also has embedded boxes. An embedded box on the clip is copied to these other embedded boxes. When unstealing, the embedded box of the clip is used again. Thus, it does not matter anymore that another instance of _cairo_clip_t is used for unstealing. Fixes: https://gitlab.freedesktop.org/cairo/cairo/issues/358 Signed-off-by: Uli Schlachter src/cairo-clip-inline.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit 9752636bade11a9b3a3f65367c2b3728ca60a983 Author: Bryce Harrington Date: Fri Feb 1 09:59:05 2019 -0800 gitignore: gtk-doc.m4 This file is generated by the dist release scripts. .gitignore | 1 + 1 file changed, 1 insertion(+) commit 4c5c48ebaa10a858ee6e940ad91a9bf504a6b6c1 Author: Bryce Harrington Date: Fri Feb 1 09:11:46 2019 -0800 surface: Fix spelling fix src/cairo-paginated-surface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f6ca43f5e82ee8fe701008a3823c7b51b2c05bf Author: Bryce Harrington Date: Fri Feb 1 08:15:42 2019 -0800 cairo: Fix Since number for new color formats src/cairo.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2a21ed0293055540985e74375ff462502adc9754 Author: Adrian Johnson Date: Fri Feb 1 19:46:00 2019 +1030 tags: Don't ignore tag on empty pages Issue 357 src/cairo-analysis-surface.c | 4 ++-- src/cairo-surface.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) commit ef99c3bf3001dbd55e32c1f2c54d7ebfeb98569a Author: Bryce Harrington Date: Thu Jan 31 19:49:57 2019 -0800 Start 1.17.2+1 development cairo-version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d67be70805fc422aacdb75fb14f6fa482db649c0 Author: Bryce Harrington Date: Thu Jan 31 19:33:41 2019 -0800 Release 1.17.2 NEWS | 25 +++++++++++++++++++++++-- cairo-version.h | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) commit 6d93bddbd65a1a9723260f2b0406abae4dd63c7f Author: luz.paz Date: Sat Oct 20 14:11:30 2018 -0400 Misc. typos Found via `codespell -i 3 -w -I ../cairo-word-whitelist.txt -L tim,ned,uint` Follow up of 12cb59be7da Reviewed-by: Bryce Harrington AUTHORS | 8 ++++---- NEWS | 20 ++++++++++---------- boilerplate/cairo-boilerplate-win32-printing.c | 2 +- build/aclocal.float.m4 | 2 +- build/configure.ac.warnings | 2 +- perf/cairo-perf-trace.c | 2 +- src/cairo-array.c | 2 +- src/cairo-cogl-surface.c | 4 ++-- src/cairo-default-context.c | 2 +- src/cairo-ft-font.c | 2 +- src/cairo-gl-device.c | 2 +- src/cairo-gl-surface.c | 2 +- src/cairo-hash.c | 2 +- src/cairo-misc.c | 2 +- src/cairo-paginated-private.h | 2 +- src/cairo-paginated-surface.c | 2 +- src/cairo-pattern.c | 8 ++++---- src/cairo-pdf-operators.c | 4 ++-- src/cairo-ps-surface.c | 2 +- src/cairo-script-surface.c | 2 +- src/cairo-tag-attributes.c | 2 +- src/cairo-toy-font-face.c | 4 ++-- src/cairo-traps.c | 2 +- src/cairoint.h | 2 +- src/win32/cairo-win32-printing-surface.c | 2 +- test/cairo-test.c | 2 +- test/copy-path.c | 2 +- test/degenerate-dash.c | 2 +- test/map-to-image.c | 6 +++--- test/pattern-getters.c | 2 +- test/pdiff/args.c | 2 +- test/pdiff/args.h | 2 +- test/svg-clip.c | 2 +- test/text-cache-crash.c | 2 +- util/cairo-api-update | 2 +- util/cairo-script/cairo-script-hash.c | 2 +- 36 files changed, 56 insertions(+), 56 deletions(-) commit cb871c6c692af68d8e0bf9e26472af45435f8a2c Author: Bryce Harrington Date: Thu Jan 31 17:20:50 2019 -0800 clip-boxes: Drop too-early return The indentation of this line suggests it is a typo. In any case it causes the function to unconditionally return immediately, thereby shortcircuiting it entirely, which does not appear to be the intended behavior. Fixes: https://gitlab.com/cairo/cairo/issues/2 src/cairo-clip-boxes.c | 1 - 1 file changed, 1 deletion(-) commit ef8c379e0f560ced63c2a07566a3a7d608e3996c Author: Adrian Johnson Date: Wed Jan 16 20:46:42 2019 +1030 scaled-subsets: always include glyphs maps to character 0 Issue 354 src/cairo-scaled-font-subsets.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 6edf572ebb27b00d3c371ba5ae267e39d27d5b6d Merge: d061570a7 90e85c249 Author: Uli Schlachter Date: Wed Jan 9 07:50:12 2019 +0100 Merge branch 'ft-crash' of gitlab.freedesktop.org:carlosgc/cairo commit d061570a70c12ebf43e9aa914a9cbb87b616a979 Author: Maarten Lankhorst Date: Mon Dec 3 15:13:42 2018 +0100 png: Add support for 16 bpc png reading as floating point format Similar to writing png, don't squash 16 bpc to 8 bpc and create a float surface to contain the image. Signed-off-by: Maarten Lankhorst Reviewed-by: Bryce Harrington src/cairo-png.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 60 insertions(+), 8 deletions(-) commit 1df0a68460ed0c9e16089919002d8c58faccdab5 Author: Maarten Lankhorst Date: Mon Dec 3 15:13:41 2018 +0100 png: Add support for writing new floating point formats as 16 bpc png. _cairo_image_surface_coerce will round down the image to a lower bpp when using one of the floating point formats, so don't coerce those. This makes the code actually work for those formats. Because a float takes more storage than u16, we have to convert float to u16 before calling png_write_image, because png_write doesn't give us back the original row data, but an in-place copy. With these changes we can dump floating point files with the highest possible accuracy, with floats clamped between 0 and 1. Signed-off-by: Maarten Lankhorst Reviewed-by: Bryce Harrington src/cairo-png.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 97 insertions(+), 11 deletions(-) commit a34cb719cd9cb4f0c5b78be80b80ab0ae22464a6 Author: Maarten Lankhorst Date: Mon Dec 3 15:13:40 2018 +0100 Add support for RGBA128F and RGB96F formats. IGT wants to add support for planes with a bit depth >10, which requires a higher precision format than we have currently. I'm using RGBA as format, because of its existence in OpenGL. With the new formats we can directly convert our bytes to half float, or multiply a colro vector with a matrix to go to the Y'CbCr colorspace. This requires pixman 0.36.0, so bump the version requirement. Signed-off-by: Maarten Lankhorst Reviewed-by: Bryce Harrington configure.ac | 2 +- perf/micro/fill-clip.c | 2 ++ perf/micro/pixel.c | 2 ++ src/cairo-debug.c | 6 ++++++ src/cairo-image-compositor.c | 4 ++++ src/cairo-image-source.c | 27 +++++++++++++++++++++++++++ src/cairo-image-surface.c | 16 ++++++++++++++++ src/cairo-png.c | 2 ++ src/cairo-script-surface.c | 20 ++++++++++++++++++++ src/cairo-xlib-display.c | 12 ++++++++++++ src/cairo.h | 6 +++++- src/cairoint.h | 2 +- test/any2ppm.c | 2 ++ test/map-to-image.c | 2 ++ test/png.c | 2 ++ util/cairo-script/cairo-script-operators.c | 12 ++++++++++++ util/cairo-trace/trace.c | 12 +++++++++++- 17 files changed, 127 insertions(+), 4 deletions(-) commit 87c1c19197a6a3cdae955b320386f5449e17b286 Author: Maarten Lankhorst Date: Mon Dec 3 15:13:39 2018 +0100 cairo-trace: Simplify bigendian case in emit_image. All the cases are the same, except len is different. Use the already calculated len parameter to handle all cases except RGB24 the same. Signed-off-by: Maarten Lankhorst Suggested-by: Bryce Harrington Reviewed-by: Bryce Harrington util/cairo-trace/trace.c | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) commit 3a0670e03c6a93fda764878697a78e3b966ef1f1 Author: Adrian Johnson Date: Sat Nov 24 18:36:26 2018 +1030 tag_attributes: Allow decimal points in non decimal point locales Issue #347 src/cairo-tag-attributes.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit 4804d073e6e197945ffe1852f0407e4364bc71be Author: Uli Schlachter Date: Tue Nov 13 16:31:06 2018 +0100 Remove all traces of NUM_THREADS The code that looked at CAIRO_TEST_NUM_THREADS was removed seven years ago in commit 6ef9779a6f5cb8, because it was dead code. I have not managed to figure out how long exactly this code was dead already. This commit removes the last traces of NUM_THREADS. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 2 +- test/Makefile.am | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) commit c62238a1dab67f05528c622047ce1e60c1a382e4 Author: Uli Schlachter Date: Tue Nov 13 16:24:19 2018 +0100 .gitlab-ci.yml: Do a verbose build With VERBOSE=1, a lot more stuff is printed while make runs. Perhaps most interestingly, this prints the output of a failed test after the test failed. Thus, this gives us the output of the test suite. Signed-off-by: Uli Schlachter .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c0ed8ce1a111cb9472aef080ac3aa31526443f7c Author: suzuki toshiya Date: Thu Dec 13 14:36:56 2018 +0900 [cairo-ft-font.c] conditionalize the changes by 3ec4aa24 on 2018-07-16 for legacy FreeType2 without color font feature src/cairo-ft-font.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 3c4570f8f49655735e13b35295ae3bc3ec81d027 Author: Adrian Johnson Date: Sun Dec 2 19:44:03 2018 +1030 ps: fix invalid matrix in eps embedding src/cairo-ps-surface-private.h | 2 ++ src/cairo-ps-surface.c | 5 +++++ 2 files changed, 7 insertions(+) commit a68c19680e23fd916770c89abf50465f4c99d12b Author: Carlos Garcia Campos Date: Mon Nov 19 13:08:14 2018 +0100 ft: Fix memory leak in _cairo_ft_unscaled_font_init FT_MM_Var returned by FT_Get_MM_Var needs to be freed. src/cairo-ft-font.c | 5 +++++ 1 file changed, 5 insertions(+) commit 90e85c2493fdfa3551f202ff10282463f1e36645 Author: Carlos Garcia Campos Date: Mon Nov 19 12:33:07 2018 +0100 ft: Use FT_Done_MM_Var instead of free when available in cairo_ft_apply_variations Fixes a crash when using freetype >= 2.9 src/cairo-ft-font.c | 4 ++++ 1 file changed, 4 insertions(+) commit 01788f5edbab01ff7148af288faf87df7373ed2a Author: Jordan Petridis Date: Sun Nov 11 12:59:39 2018 +0000 CI: Fix Docker image uris Images where migrated a couple months ago to the GNOME gitlab instance. .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4c8813f0eaacc32c27126ad2296951a626300b89 Author: Adrian Johnson Date: Thu Oct 25 18:46:17 2018 +1030 pdf: add missing flush Issue #342 src/cairo-pdf-surface.c | 5 +++++ 1 file changed, 5 insertions(+) commit 4db835c5b5eede6a348f50eb8f5b3977c32c8e9e Author: Adrian Johnson Date: Wed Oct 24 13:41:51 2018 +1030 doc: fix link tags code example The old code did not work. src/cairo.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) commit c66f017aa376f5fffcd5ee785523e5e2775e379f Author: Bryce Harrington Date: Mon Oct 22 15:46:17 2018 -0700 RELEASING: Bugzilla no longer needs updated RELEASING | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit 717f0e0a40b8d947dad3fb9f25c3aad1619aae87 Author: Adrian Johnson Date: Sun Oct 21 13:36:46 2018 +1030 type1: fallback if the font matrix is not a uniform scale https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/1790242 src/cairo-type1-subset.c | 5 +++++ 1 file changed, 5 insertions(+) commit ec70bde74ab2fb7fa4a9d648c9d7367b7daf59c2 Author: Bryce Harrington Date: Fri Oct 19 13:43:54 2018 -0700 Bump version for 1.17.1 cairo-version.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)