cairo/src
Tim Serong 09643ee1ab Avoid assert when drawing arcs with NaN angles
I hit the problem with _cairo_arc_in_direction() failing the
angle_max >= angle_min assertion earlier this year when using
Thunderbird on openSUSE Tumbleweed.  Thunderbird would crash
when rendering some (but not all) HTML email due to this
assert.  For some reason, one of the angles passed in was
NaN.  Making _cairo_arc_in_direction() return immediately if
either angle is not finite fixed the problem for me, but I
don't know enough about the internals of Cairo to know if
this is, strictly speaking, the "right" fix.  Also, having
tested again today _without_ this change applied, I am now
no longer able to reproduce the problem :-/  I still have the
same version of Cairo installed (1.17.8), but various other
packages on that system have been updated in the meantime,
so maybe that's a factor.  Or maybe I'm just lucky and
haven't hit a "bad" HTML email this time...?

Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/352
Signed-off-by: Tim Serong <tserong@suse.com>
2023-09-19 18:26:39 +10:00
..
win32 Remove stray #error in dw-extra.h 2023-05-31 12:28:56 +02:00
.gitignore gitignore: Ignore .trs (test results) 2015-07-31 17:56:54 -07:00
cairo-analysis-surface-private.h Fix shared use of recording surface with paginated targets 2023-01-15 19:29:28 +10:30
cairo-analysis-surface.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-arc-private.h skia: Update to use cairo_backend_t interface 2011-08-13 09:58:02 +01:00
cairo-arc.c Avoid assert when drawing arcs with NaN angles 2023-09-19 18:26:39 +10:00
cairo-array-private.h Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-array.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-atomic-private.h win32: InterlockedCompareExchange uses LONG 2023-04-13 06:03:22 +09:30
cairo-atomic.c sizeof(cairo_atomic_int_t) should be sizeof(int) 2023-01-11 06:11:28 +09:00
cairo-backend-private.h Added hairline support to cairo 2021-08-15 06:58:54 +00:00
cairo-base64-stream.c build: Fix various compiler warnings 2020-11-07 06:45:01 -07:00
cairo-base85-stream.c Fix undefined left-shifts 2021-03-31 12:20:34 +02:00
cairo-bentley-ottmann-rectangular.c fix warning: variable X might be clobbered by 'longjmp' 2018-01-13 11:30:50 +01:00
cairo-bentley-ottmann-rectilinear.c Split cairo-combsort-privates into struct+inlines 2012-04-19 12:22:07 +01:00
cairo-bentley-ottmann.c Rename cairo_lines_compare_at_y into _cairo_lines_compare_at_y and fix syntax 2021-04-02 14:35:46 +02:00
cairo-botor-scan-converter.c fix unused function warnings 2017-10-16 20:18:49 +10:30
cairo-box-inline.h Minor corrections 2021-04-11 02:07:10 +02:00
cairo-boxes-intersect.c Split cairo-combsort-privates into struct+inlines 2012-04-19 12:22:07 +01:00
cairo-boxes-private.h core: dropped actually unused parameter of _cairo_boxes_to_array() 2016-07-02 13:35:38 +02:00
cairo-boxes.c Fix gtk-doc syntax 2023-01-26 18:27:56 +02:00
cairo-cache-private.h Use uintptr_t for all casts between pointer and integer 2021-07-25 11:01:20 +09:30
cairo-cache.c doc: Fix the gtk-doc syntax of internal symbols 2023-02-02 14:13:56 +02:00
cairo-cff-subset.c fix read memory access 2023-07-21 00:46:44 +08:00
cairo-clip-boxes.c Fix -Wunused-function warnings 2023-02-06 11:42:00 +02:00
cairo-clip-inline.h steal boxes: Fix an invalif free() exposed by cb871c6c 2019-02-12 17:46:12 +01:00
cairo-clip-polygon.c Split cairo-clip-privates into struct+inlines 2012-04-19 12:19:19 +01:00
cairo-clip-private.h Split cairo-clip-privates into struct+inlines 2012-04-19 12:19:19 +01:00
cairo-clip-region.c Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
cairo-clip-surface.c surface: Merge scratch construction into _cairo_surface_create_scratch 2013-09-05 16:11:09 +01:00
cairo-clip-tor-scan-converter.c Use HTTPS URLs for freedesktop.org domains 2018-10-16 10:03:07 -07:00
cairo-clip.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-color.c _cairo_color_double_to_short(): Use standard rounding algorithm 2013-10-22 14:27:43 -04:00
cairo-colr-glyph-render.c Foreground color fixes for ft, svg, colrv1 2023-01-27 20:22:18 +10:30
cairo-combsort-inline.h Split cairo-combsort-privates into struct+inlines 2012-04-19 12:22:07 +01:00
cairo-compiler-private.h Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-composite-rectangles-private.h xcb: track fallback damage 2011-09-19 15:23:57 +01:00
cairo-composite-rectangles.c Remove the approximate glyph bounds check 2021-08-28 09:19:09 +09:30
cairo-compositor-private.h xlib: Only fallback through the mask intermediate if we can composite the mask 2013-01-11 13:18:26 +00:00
cairo-compositor.c Added hairline support to cairo 2021-08-15 06:58:54 +00:00
cairo-contour-inline.h Split cairo-contour-privates into struct+inlines 2012-04-19 12:25:42 +01:00
cairo-contour-private.h Split cairo-contour-privates into struct+inlines 2012-04-19 12:25:42 +01:00
cairo-contour.c Remove some useless declarations found by scan-build, the LLVM/clang static analyzer 2014-05-06 10:14:53 -07:00
cairo-ctype-inline.h Replace use of ctype functions with internal version where only ASCII chars are used 2022-04-09 22:08:57 +09:30
cairo-damage-private.h xlib/shm: Discard damage upon shm finish 2013-01-08 16:07:32 +00:00
cairo-damage.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-debug.c svg-font: return SVG_FONT_ERROR on error 2023-01-20 20:37:45 +10:30
cairo-default-context-private.h qt: Fix compilation, also minor fix for building against Qt5 2012-02-12 09:57:00 +00:00
cairo-default-context.c Clamp path coordinates 2022-05-28 16:03:50 +09:30
cairo-deflate-stream.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-deprecated.h Update FSF address 2010-04-27 11:13:38 +02:00
cairo-device-private.h Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-device.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-dwrite.h doc: fix cairo_dwrite_font_face_set_rendering_params docs 2023-02-02 14:19:08 +02:00
cairo-error-inline.h Split cairo-error-private into struct+inlines 2012-04-19 13:17:29 +01:00
cairo-error-private.h svg-font: return SVG_FONT_ERROR on error 2023-01-20 20:37:45 +10:30
cairo-error.c clip: Rudimentary support for clip-polygon extraction 2011-07-19 21:14:34 +01:00
cairo-fallback-compositor.c surface: Use the internal map/unmap 2012-05-26 16:07:00 +02:00
cairo-fixed-private.h Avoid undefined signed left shift 2023-06-30 18:43:00 +09:30
cairo-fixed-type-private.h Correct spelling of "tessellator" throughout code 2014-02-26 18:55:25 -08:00
cairo-fixed.c Update FSF address 2010-04-27 11:13:38 +02:00
cairo-font-face-twin-data.c [twin] Improve glyph hints 2008-12-25 02:46:27 -05:00
cairo-font-face-twin.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-font-face.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-font-options.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-fontconfig-private.h Make distcheck happy. 2010-07-12 11:05:57 +01:00
cairo-freed-pool-private.h Fix data race in freed_pool 2016-03-05 14:35:17 +01:00
cairo-freed-pool.c Fix data race in freed_pool 2016-03-05 14:35:17 +01:00
cairo-freelist-private.h Avoid indiscriminate use of VALGRIND_MAKE_MEM_NOACCESS. 2015-06-26 16:12:33 -07:00
cairo-freelist-type-private.h freelist: Separate freelist inlines from the datatype in headers. 2010-09-02 14:51:30 +01:00
cairo-freelist.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-ft-font.c Fix font options leak in scaled font 2023-09-17 09:32:10 +02:00
cairo-ft-private.h Foreground color fixes for ft, svg, colrv1 2023-01-27 20:22:18 +10:30
cairo-ft.h Consistently spell "FreeType" with capital T 2023-07-17 15:35:40 +03:00
cairo-gstate-private.h Added hairline support to cairo 2021-08-15 06:58:54 +00:00
cairo-gstate.c Fix font options leak in gstate 2023-09-17 09:22:29 +02:00
cairo-hash-private.h Remove unused _cairo_hash_table_size 2021-05-29 18:04:45 +02:00
cairo-hash.c Fix font count in Inkscape's win32 pdf export 2022-03-09 12:43:42 +11:00
cairo-hull.c Update FSF address 2010-04-27 11:13:38 +02:00
cairo-image-compositor.c Support color fonts that use the foreground color 2021-08-28 18:07:01 +09:30
cairo-image-info-private.h Fix using signed types where unsigned ones were needed 2021-04-11 23:59:47 +02:00
cairo-image-info.c Merge branch 'jpx-out-of-bounds' into 'master' 2023-01-02 09:28:42 +00:00
cairo-image-mask-compositor.c Fix undefined left-shifts 2021-03-31 12:20:34 +02:00
cairo-image-source.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-image-surface-inline.h image: Check for an error surface before dereferencing the backend 2012-09-08 15:12:58 +01:00
cairo-image-surface-private.h image: Fix include for use of ptrdiff 2017-12-07 14:13:28 -08:00
cairo-image-surface.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-line-inline.h stroke,traps: Emit join without loss of precision 2014-09-29 08:42:17 +01:00
cairo-line-private.h Rename cairo_lines_compare_at_y into _cairo_lines_compare_at_y and fix syntax 2021-04-02 14:35:46 +02:00
cairo-line.c Rename cairo_lines_compare_at_y into _cairo_lines_compare_at_y and fix syntax 2021-04-02 14:35:46 +02:00
cairo-list-inline.h cairo-list-inline.h: fixes and documentation 2023-04-16 20:17:09 +09:30
cairo-list-private.h Split cairo-list into struct+inlines 2012-04-19 13:17:29 +01:00
cairo-lzw.c Fixed crash in _cairo_lzw_compress for 1 byte input 2022-12-28 10:16:49 +01:00
cairo-malloc-private.h Fix malloc overflow check warning 2021-08-24 07:26:35 +09:30
cairo-mask-compositor.c surface: Merge scratch construction into _cairo_surface_create_scratch 2013-09-05 16:11:09 +01:00
cairo-matrix.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-mempool-private.h Fix make check 2012-09-24 09:42:43 +02:00
cairo-mempool.c Fix integer overflows in cairo-mempool 2021-09-15 18:02:05 +02:00
cairo-mesh-pattern-rasterizer.c s/the the/the/ 2023-01-31 20:50:01 +10:30
cairo-misc.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-mono-scan-converter.c Fix -Wunused-function warnings 2023-02-06 11:42:00 +02:00
cairo-mutex-impl-private.h Defining Windows version macros in meson.build 2023-01-13 05:47:03 +09:00
cairo-mutex-list-private.h Drop cairo-gl 2023-01-27 19:21:46 +00:00
cairo-mutex-private.h Use a spinlock to prevent race condition when initializing mutexes 2023-05-27 19:01:47 +09:30
cairo-mutex-type-private.h Fix deadlock in cairo-scaled-font.c 2022-05-28 06:34:55 +09:30
cairo-mutex.c Use a spinlock to prevent race condition when initializing mutexes 2023-05-27 19:01:47 +09:30
cairo-no-compositor.c Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
cairo-observer.c Split cairo-list into struct+inlines 2012-04-19 13:17:29 +01:00
cairo-output-stream-private.h Allow > 2GB PDF files on platforms with 32-bit long 2021-09-02 18:39:53 +09:30
cairo-output-stream.c script: Implement device finish 2022-03-08 18:11:23 +01:00
cairo-paginated-private.h Make _cairo_paginated_surface_set_size takes double-typed width and 2023-01-07 13:08:38 +01:00
cairo-paginated-surface-private.h Update FSF address 2010-04-27 11:13:38 +02:00
cairo-paginated-surface.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-path-bounds.c Prevent curved strokes in small ctms from being culled from vector surfaces 2017-10-03 22:27:25 +10:30
cairo-path-fill.c Fix cast between incompatible function types warnings 2021-08-22 12:07:36 +09:30
cairo-path-fixed-private.h Use uintptr_t for all casts between pointer and integer 2021-07-25 11:01:20 +09:30
cairo-path-fixed.c Fix cast between incompatible function types warnings 2021-08-22 12:07:36 +09:30
cairo-path-in-fill.c Fix cast between incompatible function types warnings 2021-08-22 12:07:36 +09:30
cairo-path-private.h Implement cairo_backend_t 2011-07-15 11:05:19 +01:00
cairo-path-stroke-boxes.c replace _BSD_SOURCE with _DEFAULT_SOURCE 2017-09-16 10:04:57 +09:30
cairo-path-stroke-polygon.c Fix -Wunused-function warnings 2023-02-06 11:42:00 +02:00
cairo-path-stroke-traps.c Round joins fix (spline_cusp_tolerance) 2022-12-28 07:25:30 +05:00
cairo-path-stroke-tristrip.c replace _BSD_SOURCE with _DEFAULT_SOURCE 2017-09-16 10:04:57 +09:30
cairo-path-stroke.c Fix -Wunused-function warnings 2023-02-06 11:42:00 +02:00
cairo-path.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-pattern-inline.h Split cairo-list into struct+inlines 2012-04-19 13:17:29 +01:00
cairo-pattern-private.h Rename is_userfont_foreground to is_foreground_marker 2023-01-27 20:22:19 +10:30
cairo-pattern.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-pdf-interchange.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-pdf-operators-private.h pdf: structured text and hyperlink support 2016-10-01 22:05:42 +09:30
cairo-pdf-operators.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-pdf-shading-private.h Update FSF address 2011-07-31 13:05:21 +02:00
cairo-pdf-shading.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-pdf-surface-private.h Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-pdf-surface.c Fix building with -Werror=format-security 2023-09-02 00:46:45 +00:00
cairo-pdf.h pdf: ensure filenames are correctly encoded 2022-01-16 13:49:53 +10:30
cairo-pen.c ofz#46165 avoid a divide by zero seen fuzzing libreoffice rendering 2022-08-31 10:32:12 +01:00
cairo-pixman-private.h Make "make check" happy 2013-08-26 17:56:27 +01:00
cairo-png.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-polygon-intersect.c polygon-intersection: Clarify ptr checks for right edges (CID #1160730) 2018-06-13 15:21:50 -07:00
cairo-polygon-reduce.c core: fix compiler warnings 2016-07-02 13:27:11 +02:00
cairo-polygon.c Avoid indiscriminate use of VALGRIND_MAKE_MEM_NOACCESS. 2015-06-26 16:12:33 -07:00
cairo-private.h Implement cairo_backend_t 2011-07-15 11:05:19 +01:00
cairo-ps-surface-private.h Fix shared use of recording surface with paginated targets 2023-01-15 19:29:28 +10:30
cairo-ps-surface.c doc: Escape percent sign 2023-02-02 14:13:56 +02:00
cairo-ps.h Revert accidental push of ps debugging API. 2012-04-14 14:54:07 +01:00
cairo-quartz-font.c Add new cairo_user_scaled_font_get_foreground_source() function 2023-01-26 19:49:06 +10:30
cairo-quartz-image-surface.c [quartz]Conditionally Use Main Display ColorSpace instead of kCGColorSpaceDefaultRGB. 2023-02-17 10:25:14 -08:00
cairo-quartz-image.h Convert 3 headers to UTF8 2018-08-16 20:14:57 -07:00
cairo-quartz-private.h [quartz]Conditionally Use Main Display ColorSpace instead of kCGColorSpaceDefaultRGB. 2023-02-17 10:25:14 -08:00
cairo-quartz-surface.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-quartz.h Convert 3 headers to UTF8 2018-08-16 20:14:57 -07:00
cairo-raster-source-pattern.c Fix warnings from check-doc-syntax.sh 2014-03-13 17:12:43 -07:00
cairo-recording-surface-inline.h Split cairo-recording-surface-private into struct+inlines 2012-04-19 12:46:34 +01:00
cairo-recording-surface-private.h Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-recording-surface.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-rectangle.c stroke: Make the incremental trapezoid stroker optionally available again 2013-01-03 15:07:18 +00:00
cairo-rectangular-scan-converter.c Split cairo-combsort-privates into struct+inlines 2012-04-19 12:22:07 +01:00
cairo-reference-count-private.h Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
cairo-region-private.h Add preliminary damage tracking 2012-02-15 14:21:00 +00:00
cairo-region.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-rtree-private.h Split cairo-list into struct+inlines 2012-04-19 13:17:29 +01:00
cairo-rtree.c gl: Decouple the glyph upon eviction 2011-12-07 18:00:18 +00:00
cairo-scaled-font-private.h Foreground color fixes for ft, svg, colrv1 2023-01-27 20:22:18 +10:30
cairo-scaled-font-subsets-private.h Merge branch 'pdf-color-fonts' into 'master' 2023-02-02 10:58:52 +00:00
cairo-scaled-font-subsets.c Refix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56152 according to recommendations 2023-07-18 12:04:59 +00:00
cairo-scaled-font.c Fix font options leak in scaled font 2023-09-17 09:32:10 +02:00
cairo-script-private.h Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-script-surface.c Fix font options leak in cairo script surface 2023-09-17 10:00:51 +02:00
cairo-script.h doc: Add since documentation for enumeration values 2012-03-29 11:03:19 +02:00
cairo-shape-mask-compositor.c Fix -Wparentheses-equality warnings 2023-02-04 10:58:13 +02:00
cairo-slope-private.h Update FSF address 2010-04-27 11:13:38 +02:00
cairo-slope.c Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
cairo-spans-compositor-private.h image: Enable inplace compositing with opacities for general routines 2013-01-26 16:10:47 +00:00
cairo-spans-compositor.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-spans-private.h core: reintroduce bot-scan-converter functions 2016-01-13 17:07:53 -08:00
cairo-spans.c svg-font: return SVG_FONT_ERROR on error 2023-01-20 20:37:45 +10:30
cairo-spline.c s/the the/the/ 2023-01-31 20:50:01 +10:30
cairo-stroke-dash-private.h stroke: Rely on the tessellator to remove self-intersections 2011-08-13 16:41:28 +01:00
cairo-stroke-dash.c dash: Increment dash_remain by the next segment to reduce accumulation errors 2012-04-19 16:12:55 +01:00
cairo-stroke-style.c Fix typos in doxygen and source comments 2022-03-28 16:43:03 -04:00
cairo-surface-backend-private.h Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-surface-clipper-private.h clip: Rudimentary support for clip-polygon extraction 2011-07-19 21:14:34 +01:00
cairo-surface-clipper.c Split cairo-clip-privates into struct+inlines 2012-04-19 12:19:19 +01:00
cairo-surface-fallback-private.h Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
cairo-surface-fallback.c Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
cairo-surface-inline.h xlib: Implement SHM fallbacks and fast upload paths 2012-08-17 13:58:09 +01:00
cairo-surface-observer-inline.h Split cairo-surface-observer-private into struct+inlines 2012-04-19 12:35:20 +01:00
cairo-surface-observer-private.h Fix out of bound access in struct pattern->type 2015-07-09 13:50:35 -07:00
cairo-surface-observer.c doc: Include surface observer documentation 2023-02-02 14:13:56 +02:00
cairo-surface-offset-private.h clip: Rudimentary support for clip-polygon extraction 2011-07-19 21:14:34 +01:00
cairo-surface-offset.c Split cairo-clip-privates into struct+inlines 2012-04-19 12:19:19 +01:00
cairo-surface-private.h Fix user-font with foreground in group failures on image, PDF, and PS 2023-01-03 17:37:36 +10:30
cairo-surface-snapshot-inline.h snapshot: Avoid triggering assertion for grabbing the target during destroy 2012-05-01 16:55:22 +01:00
cairo-surface-snapshot-private.h snapshot: Perform the cow under a mutex 2012-04-27 14:10:50 +01:00
cairo-surface-snapshot.c Slightly improve dealing with error snapshots 2021-01-07 17:27:39 +01:00
cairo-surface-subsurface-inline.h Split cairo-surface-subsurface-private into struct+inlines 2012-04-19 13:17:29 +01:00
cairo-surface-subsurface-private.h Split cairo-surface-subsurface-private into struct+inlines 2012-04-19 13:17:29 +01:00
cairo-surface-subsurface.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-surface-wrapper-private.h Fix shared use of recording surface with paginated targets 2023-01-15 19:29:28 +10:30
cairo-surface-wrapper.c Fix shared use of recording surface with paginated targets 2023-01-15 19:29:28 +10:30
cairo-surface.c Fix font options leak in _cairo_surface_copy_similar_properties() 2023-09-17 09:51:51 +02:00
cairo-svg-glyph-render.c Fix build with -DDEBUG_SVG_RENDER 2023-02-01 06:26:09 +10:30
cairo-svg-surface-private.h Fix warnings and pipeline failure 2021-04-13 12:26:16 +02:00
cairo-svg-surface.c PDF Type 3 color fonts 2023-01-29 18:08:42 +10:30
cairo-svg.h doc: Fix external links 2023-02-02 14:13:56 +02:00
cairo-tag-attributes-private.h Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-tag-attributes.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-tag-stack-private.h Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-tag-stack.c Merge branch 'tag_stack' into 'master' 2023-06-29 15:11:17 +00:00
cairo-tee-surface.c tee: Remove questionable terminology 2023-08-17 17:28:56 +01:00
cairo-tee.h clip: Rudimentary support for clip-polygon extraction 2011-07-19 21:14:34 +01:00
cairo-time-private.h Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
cairo-time.c Defining Windows version macros in meson.build 2023-01-13 05:47:03 +09:00
cairo-tor-scan-converter.c Use HTTPS URLs for freedesktop.org domains 2018-10-16 10:03:07 -07:00
cairo-tor22-scan-converter.c Fix -Wunused-function warnings 2023-02-06 11:42:00 +02:00
cairo-toy-font-face.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-traps-compositor.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-traps-private.h stroke,traps: Emit join without loss of precision 2014-09-29 08:42:17 +01:00
cairo-traps.c Rename cairo_lines_compare_at_y into _cairo_lines_compare_at_y and fix syntax 2021-04-02 14:35:46 +02:00
cairo-tristrip-private.h Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
cairo-tristrip.c Avoid indiscriminate use of VALGRIND_MAKE_MEM_NOACCESS. 2015-06-26 16:12:33 -07:00
cairo-truetype-subset-private.h Fix undefined left-shifts 2021-03-31 12:20:34 +02:00
cairo-truetype-subset.c Apply 1 suggestion(s) to 1 file(s) 2023-07-17 15:28:32 +00:00
cairo-type1-fallback.c Support color fonts that use the foreground color 2021-08-28 18:07:01 +09:30
cairo-type1-glyph-names.c Type 1 glyph names: Do not use an array of pointers for winansi glyph names 2010-11-06 22:45:11 +10:30
cairo-type1-private.h Update FSF address 2010-04-27 11:13:38 +02:00
cairo-type1-subset.c fix SEGV in cairo_type1_font functioons 2023-07-22 11:58:20 +08:00
cairo-type3-glyph-surface-private.h pdf-operators: only wrap text strings for PS output 2014-10-31 19:26:05 +10:30
cairo-type3-glyph-surface.c PDF Type 3 color fonts 2023-01-29 18:08:42 +10:30
cairo-types-private.h Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-unicode.c [unicode] Non-characters are allowed in Unicode strings 2022-05-18 17:35:38 -06:00
cairo-user-font-private.h Update FSF address 2010-04-27 11:13:38 +02:00
cairo-user-font.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-version.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-version.h Post-release version bump to 1.17.9 2023-02-02 10:47:00 +01:00
cairo-wideint-private.h wideint: Fix compilation failure for bare use of uint64_t for !HAVE_UINT64_T 2012-05-20 10:55:26 +01:00
cairo-wideint-type-private.h Drop the conditional inclusion of config.h 2021-05-01 17:05:29 +01:00
cairo-wideint.c cairo-wideint: Fix typo in two cairo_uint128 functions 2014-07-24 18:41:37 -07:00
cairo-win32.h dwrite: create C++ dwrite header 2023-01-31 06:54:32 +10:30
cairo-xcb-connection-core.c xcb: remove free pixmap/gc wrappers 2021-05-02 19:30:28 +02:00
cairo-xcb-connection-render.c xcb: Remove free XID cache 2021-05-02 17:49:32 +02:00
cairo-xcb-connection-shm.c xcb: Remove free XID cache 2021-05-02 17:49:32 +02:00
cairo-xcb-connection.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-xcb-private.h Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-xcb-resources.c xcb: Query the display's subpixel order via RENDER 2015-01-17 20:11:59 +01:00
cairo-xcb-screen.c xcb: remove free pixmap/gc wrappers 2021-05-02 19:30:28 +02:00
cairo-xcb-shm.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-xcb-surface-core.c xcb: remove free pixmap/gc wrappers 2021-05-02 19:30:28 +02:00
cairo-xcb-surface-render.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-xcb-surface.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo-xcb.h Add cairo_xcb_surface_set_drawable 2011-12-02 15:31:51 +00:00
cairo-xlib-core-compositor.c Surround initialisations with atomic critical section 2017-10-15 18:51:04 +10:30
cairo-xlib-display.c Add support for RGBA128F and RGB96F formats. 2019-01-07 19:10:44 -08:00
cairo-xlib-fallback-compositor.c xlib/shm: Limit use of the impromptu fallback pixmap for uploads 2012-08-17 23:20:01 +01:00
cairo-xlib-private.h cairo-xlib: Check for maximum surface size 2021-01-13 16:36:33 +01:00
cairo-xlib-render-compositor.c Support color fonts that use the foreground color 2021-08-28 18:07:01 +09:30
cairo-xlib-screen.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-xlib-source.c Make cairo_tag_begin/end work correctly in groups 2023-04-18 18:27:12 +09:30
cairo-xlib-surface-private.h headers: fix include order for AIX, bug#89354 2015-03-05 17:03:28 -08:00
cairo-xlib-surface-shm.c Don't leave the shm field uninitialized when building without shm support. 2021-04-29 08:52:31 +00:00
cairo-xlib-surface.c Fix undefined left-shifts 2021-03-31 12:20:34 +02:00
cairo-xlib-visual.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-xlib-xcb-surface.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-xlib-xrender-private.h Check for XRenderSolidFill() 2013-12-16 19:27:38 -05:00
cairo-xlib-xrender.h Update FSF address 2010-04-27 11:13:38 +02:00
cairo-xlib.h xlib: Replace obsolete disable-xrender with shiny new device debug interface 2012-02-22 10:41:37 +00:00
cairo.c Drop "slim" symbols 2023-08-16 16:33:04 +01:00
cairo.h Build with hidden symbols by default 2023-08-16 16:33:04 +01:00
cairoint.h Build with hidden symbols by default 2023-08-16 16:33:04 +01:00
check-doc-syntax.awk check-doc-syntax: Don't hardcode path to awk 2013-09-16 12:57:57 +02:00
check-doc-syntax.sh check-doc-syntax: Don't hardcode path to awk 2013-09-16 12:57:57 +02:00
check-headers.sh Remove cairo-drm 2022-02-25 01:54:29 +00:00
check-link.c Retire dummy cairo-version.h header to fix meson subproject build 2020-09-29 15:50:53 +00:00
check-preprocessor-syntax.sh Fix complaints from check-preprocessor-syntax.sh 2022-07-14 18:21:54 +02:00
meson.build Build with hidden symbols by default 2023-08-16 16:33:04 +01:00
README Fix various README typos 2009-01-02 02:56:38 -05:00
test-base-compositor-surface.c Support color fonts that use the foreground color 2021-08-28 18:07:01 +09:30
test-compositor-surface-private.h check: Make the newly added privates pass make check 2011-09-15 15:55:52 +01:00
test-compositor-surface.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
test-compositor-surface.h Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
test-null-compositor-surface.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
test-null-compositor-surface.h Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
test-paginated-surface.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
test-paginated-surface.h Update FSF address 2010-04-27 11:13:38 +02:00

Cairo Library Source Code
=========================

This directory contains the source code of the cairo library.


Source Code Listing
-------------------

The canonical list of source files is the file Makefile.sources.  See that
file for how it works.


New Backends
------------

The rule of the thumb for adding new backends is to see how other
backends are integrated.  Pick one of the simpler, unsupported, backends
and search the entire tree for it, and go from there.

To add new backends you need to basically:

  * Modify $(top_srcdir)/configure.in to add checks for your backend.

  * Modify Makefile.sources to add source files for your backend,

  * Modify $(top_srcdir)/boilerplate/ to add boilerplate code for
    testing your new backend.


New API
-------

After adding new API, run "make check" in this directory and fix any
reported issues.  Also add new API to the right location in
$(top_srcdir)/doc/public/cairo-sections.txt and run "make check"
in $(top_builddir)/doc/public to make sure that any newly added
documentation is correctly hooked up.

Do not forget to add tests for the new API.  See next section.


Tests
-----

There are some tests in this directory that check the source code and
the build for various issues.  The tests are very quick to run, and
particularly should be run after any documentation or API changes.  It
does not hurt to run them after any source modification either.  Run
them simply by calling:

	make check

There are also extensive regression tests in $(top_srcdir)/test.  It is
a good idea to run that test suite for any changes made to the source
code.  Moreover, for any new feature, API, or bug fix, new tests should
be added to the regression test suite to test the new code.


Bibliography
------------

A detailed list of academic publications used in cairo code is available
in the file $(top_srcdir)/BIBLIOGRAPHY.  Feel free to update as you
implement more papers.

For more technical publications (eg. Adobe technical reports) just
point them out in a comment in the header of the file implementing them.