[cairo-commit] 14 commits - src/cairo-analysis-surface.c src/cairo-bentley-ottmann.c src/cairo-bentley-ottmann-rectangular.c src/cairo-bentley-ottmann-rectilinear.c src/cairo-beos-surface.cpp src/cairo-botor-scan-converter.c src/cairo-boxes.c src/cairo-boxes-intersect.c src/cairo-boxes-private.h src/cairo-box-inline.h src/cairo-box-private.h src/cairo-clip-boxes.c src/cairo-clip.c src/cairo-clip-inline.h src/cairo-clip-polygon.c src/cairo-clip-private.h src/cairo-cogl-surface.c src/cairo-combsort-inline.h src/cairo-combsort-private.h src/cairo-composite-rectangles.c src/cairo-contour.c src/cairo-contour-inline.h src/cairo-contour-private.h src/cairo-default-context.c src/cairo-error-inline.h src/cairo-error-private.h src/cairo-gl-operand.c src/cairo-gl-surface-legacy.c src/cairo-gstate.c src/cairo-image-source.c src/cairo-image-surface.c src/cairo-image-surface-inline.h src/cairo-image-surface-private.h src/cairo-list-inline.h src/cairo-list-private.h src/cairo-mask-compositor.c sr c/cairo-observer.c src/cairo-paginated-surface.c src/cairo-path-bounds.c src/cairo-path-fixed.c src/cairo-path-stroke-boxes.c src/cairo-path-stroke.c src/cairo-path-stroke-polygon.c src/cairo-path-stroke-tristrip.c src/cairo-pattern.c src/cairo-pattern-inline.h src/cairo-pattern-private.h src/cairo-pdf-surface.c src/cairo-polygon-intersect.c src/cairo-polygon-reduce.c src/cairo-ps-surface.c src/cairo-recording-surface.c src/cairo-recording-surface-inline.h src/cairo-recording-surface-private.h src/cairo-rectangle.c src/cairo-rectangular-scan-converter.c src/cairo-rtree-private.h src/cairo-scaled-font.c src/cairo-script-surface.c src/cairo-skia-surface.cpp src/cairo-spans-compositor.c src/cairo-spline.c src/cairo-surface.c src/cairo-surface-clipper.c src/cairo-surface-inline.h src/cairo-surface-observer.c src/cairo-surface-observer-inline.h src/cairo-surface-observer-private.h src/cairo-surface-offset.c src/cairo-surface-private.h src/cairo-surface-snapshot.c src/cairo-surfac e-snapshot-inline.h src/cairo-surface-snapshot-private.h src/cairo-surface-subsurface.c src/cairo-surface-subsurface-inline.h src/cairo-surface-subsurface-private.h src/cairo-surface-wrapper.c src/cairo-svg-surface.c src/cairo-tee-surface.c src/cairo-traps-compositor.c src/cairo-vg-surface.c src/cairo-xcb-connection.c src/cairo-xcb-screen.c src/cairo-xcb-shm.c src/cairo-xcb-surface.c src/cairo-xcb-surface-render.c src/cairo-xlib-core-compositor.c src/cairo-xlib-display.c src/cairo-xlib-render-compositor.c src/cairo-xlib-screen.c src/cairo-xlib-source.c src/cairo-xlib-surface.c src/cairo-xlib-xcb-surface.c src/cairo-xml-surface.c src/drm src/Makefile.sources src/skia src/win32
Chris Wilson
ickle at kemper.freedesktop.org
Thu Apr 19 05:30:11 PDT 2012
src/Makefile.sources | 15 +-
src/cairo-analysis-surface.c | 8 -
src/cairo-bentley-ottmann-rectangular.c | 2
src/cairo-bentley-ottmann-rectilinear.c | 2
src/cairo-bentley-ottmann.c | 2
src/cairo-beos-surface.cpp | 1
src/cairo-botor-scan-converter.c | 4
src/cairo-box-inline.h | 121 +++++++++++++++++
src/cairo-box-private.h | 121 -----------------
src/cairo-boxes-intersect.c | 2
src/cairo-boxes-private.h | 8 -
src/cairo-boxes.c | 2
src/cairo-clip-boxes.c | 3
src/cairo-clip-inline.h | 83 ++++++++++++
src/cairo-clip-polygon.c | 1
src/cairo-clip-private.h | 42 ------
src/cairo-clip.c | 1
src/cairo-cogl-surface.c | 6
src/cairo-combsort-inline.h | 94 +++++++++++++
src/cairo-combsort-private.h | 94 -------------
src/cairo-composite-rectangles.c | 1
src/cairo-contour-inline.h | 80 +++++++++++
src/cairo-contour-private.h | 35 -----
src/cairo-contour.c | 3
src/cairo-default-context.c | 1
src/cairo-error-inline.h | 52 +++++++
src/cairo-error-private.h | 7 -
src/cairo-gl-operand.c | 2
src/cairo-gl-surface-legacy.c | 1
src/cairo-gstate.c | 2
src/cairo-image-source.c | 4
src/cairo-image-surface-inline.h | 82 ++++++++++++
src/cairo-image-surface-private.h | 35 -----
src/cairo-image-surface.c | 10 -
src/cairo-list-inline.h | 209 +++++++++++++++++++++++++++++++
src/cairo-list-private.h | 167 ------------------------
src/cairo-mask-compositor.c | 3
src/cairo-observer.c | 2
src/cairo-paginated-surface.c | 2
src/cairo-path-bounds.c | 2
src/cairo-path-fixed.c | 3
src/cairo-path-stroke-boxes.c | 2
src/cairo-path-stroke-polygon.c | 3
src/cairo-path-stroke-tristrip.c | 2
src/cairo-path-stroke.c | 2
src/cairo-pattern-inline.h | 65 +++++++++
src/cairo-pattern-private.h | 20 --
src/cairo-pattern.c | 5
src/cairo-pdf-surface.c | 2
src/cairo-polygon-intersect.c | 2
src/cairo-polygon-reduce.c | 2
src/cairo-ps-surface.c | 3
src/cairo-recording-surface-inline.h | 68 ++++++++++
src/cairo-recording-surface-private.h | 26 ---
src/cairo-recording-surface.c | 4
src/cairo-rectangle.c | 2
src/cairo-rectangular-scan-converter.c | 2
src/cairo-rtree-private.h | 2
src/cairo-scaled-font.c | 1
src/cairo-script-surface.c | 6
src/cairo-skia-surface.cpp | 1
src/cairo-spans-compositor.c | 5
src/cairo-spline.c | 2
src/cairo-surface-clipper.c | 1
src/cairo-surface-inline.h | 52 +++++++
src/cairo-surface-observer-inline.h | 59 ++++++++
src/cairo-surface-observer-private.h | 21 ---
src/cairo-surface-observer.c | 6
src/cairo-surface-offset.c | 1
src/cairo-surface-private.h | 9 -
src/cairo-surface-snapshot-inline.h | 59 ++++++++
src/cairo-surface-snapshot-private.h | 18 --
src/cairo-surface-snapshot.c | 2
src/cairo-surface-subsurface-inline.h | 72 ++++++++++
src/cairo-surface-subsurface-private.h | 32 ----
src/cairo-surface-subsurface.c | 1
src/cairo-surface-wrapper.c | 1
src/cairo-surface.c | 4
src/cairo-svg-surface.c | 2
src/cairo-tee-surface.c | 4
src/cairo-traps-compositor.c | 9 -
src/cairo-vg-surface.c | 2
src/cairo-xcb-connection.c | 2
src/cairo-xcb-screen.c | 1
src/cairo-xcb-shm.c | 1
src/cairo-xcb-surface-render.c | 6
src/cairo-xcb-surface.c | 1
src/cairo-xlib-core-compositor.c | 1
src/cairo-xlib-display.c | 1
src/cairo-xlib-render-compositor.c | 1
src/cairo-xlib-screen.c | 1
src/cairo-xlib-source.c | 6
src/cairo-xlib-surface.c | 1
src/cairo-xlib-xcb-surface.c | 1
src/cairo-xml-surface.c | 2
src/drm/cairo-drm-surface.c | 1
src/skia/cairo-skia-context.cpp | 1
src/win32/cairo-win32-gdi-compositor.c | 2
src/win32/cairo-win32-printing-surface.c | 2
99 files changed, 1224 insertions(+), 704 deletions(-)
New commits:
commit 57cfdfd9796531a576060e9304715920e0fdb8fe
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-list into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index 9ea87f8..f487fc1 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -84,6 +84,7 @@ cairo_private = \
cairo-image-info-private.h \
cairo-image-surface-inline.h \
cairo-image-surface-private.h \
+ cairo-list-inline.h \
cairo-list-private.h \
cairo-malloc-private.h \
cairo-mutex-impl-private.h \
diff --git a/src/cairo-botor-scan-converter.c b/src/cairo-botor-scan-converter.c
index dc1ae6b..2729463 100644
--- a/src/cairo-botor-scan-converter.c
+++ b/src/cairo-botor-scan-converter.c
@@ -43,7 +43,7 @@
#include "cairoint.h"
#include "cairo-error-private.h"
-#include "cairo-list-private.h"
+#include "cairo-list-inline.h"
#include "cairo-freelist-private.h"
#include "cairo-combsort-inline.h"
diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c
index 889bc1a..23e8b18 100644
--- a/src/cairo-gstate.c
+++ b/src/cairo-gstate.c
@@ -40,6 +40,7 @@
#include "cairo-clip-inline.h"
#include "cairo-clip-private.h"
#include "cairo-error-private.h"
+#include "cairo-list-inline.h"
#include "cairo-gstate-private.h"
#include "cairo-pattern-private.h"
#include "cairo-traps-private.h"
diff --git a/src/cairo-list-inline.h b/src/cairo-list-inline.h
new file mode 100644
index 0000000..d00f40e
--- /dev/null
+++ b/src/cairo-list-inline.h
@@ -0,0 +1,209 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2009 Chris Wilson
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is Chris Wilson.
+ *
+ * Contributor(s):
+ * Chris Wilson <chris at chris-wilson.co.uk>
+ *
+ */
+
+#ifndef CAIRO_LIST_INLINE_H
+#define CAIRO_LIST_INLINE_H
+
+#include "cairo-list-private.h"
+
+#define cairo_list_entry(ptr, type, member) \
+ cairo_container_of(ptr, type, member)
+
+#define cairo_list_first_entry(ptr, type, member) \
+ cairo_list_entry((ptr)->next, type, member)
+
+#define cairo_list_last_entry(ptr, type, member) \
+ cairo_list_entry((ptr)->prev, type, member)
+
+#define cairo_list_foreach(pos, head) \
+ for (pos = (head)->next; pos != (head); pos = pos->next)
+
+#define cairo_list_foreach_entry(pos, type, head, member) \
+ for (pos = cairo_list_entry((head)->next, type, member);\
+ &pos->member != (head); \
+ pos = cairo_list_entry(pos->member.next, type, member))
+
+#define cairo_list_foreach_entry_safe(pos, n, type, head, member) \
+ for (pos = cairo_list_entry ((head)->next, type, member),\
+ n = cairo_list_entry (pos->member.next, type, member);\
+ &pos->member != (head); \
+ pos = n, n = cairo_list_entry (n->member.next, type, member))
+
+#define cairo_list_foreach_entry_reverse(pos, type, head, member) \
+ for (pos = cairo_list_entry((head)->prev, type, member);\
+ &pos->member != (head); \
+ pos = cairo_list_entry(pos->member.prev, type, member))
+
+#define cairo_list_foreach_entry_reverse_safe(pos, n, type, head, member) \
+ for (pos = cairo_list_entry((head)->prev, type, member),\
+ n = cairo_list_entry (pos->member.prev, type, member);\
+ &pos->member != (head); \
+ pos = n, n = cairo_list_entry (n->member.prev, type, member))
+
+#ifdef CAIRO_LIST_DEBUG
+static inline void
+_cairo_list_validate (const cairo_list_t *link)
+{
+ assert (link->next->prev == link);
+ assert (link->prev->next == link);
+}
+static inline void
+cairo_list_validate (const cairo_list_t *head)
+{
+ cairo_list_t *link;
+
+ cairo_list_foreach (link, head)
+ _cairo_list_validate (link);
+}
+static inline cairo_bool_t
+cairo_list_is_empty (const cairo_list_t *head);
+static inline void
+cairo_list_validate_is_empty (const cairo_list_t *head)
+{
+ assert (head->next == NULL || (cairo_list_is_empty (head) && head->next == head->prev));
+}
+#else
+#define _cairo_list_validate(link)
+#define cairo_list_validate(head)
+#define cairo_list_validate_is_empty(head)
+#endif
+
+static inline void
+cairo_list_init (cairo_list_t *entry)
+{
+ entry->next = entry;
+ entry->prev = entry;
+}
+
+static inline void
+__cairo_list_add (cairo_list_t *entry,
+ cairo_list_t *prev,
+ cairo_list_t *next)
+{
+ next->prev = entry;
+ entry->next = next;
+ entry->prev = prev;
+ prev->next = entry;
+}
+
+static inline void
+cairo_list_add (cairo_list_t *entry, cairo_list_t *head)
+{
+ cairo_list_validate (head);
+ cairo_list_validate_is_empty (entry);
+ __cairo_list_add (entry, head, head->next);
+ cairo_list_validate (head);
+}
+
+static inline void
+cairo_list_add_tail (cairo_list_t *entry, cairo_list_t *head)
+{
+ cairo_list_validate (head);
+ cairo_list_validate_is_empty (entry);
+ __cairo_list_add (entry, head->prev, head);
+ cairo_list_validate (head);
+}
+
+static inline void
+__cairo_list_del (cairo_list_t *prev, cairo_list_t *next)
+{
+ next->prev = prev;
+ prev->next = next;
+}
+
+static inline void
+cairo_list_del (cairo_list_t *entry)
+{
+ __cairo_list_del (entry->prev, entry->next);
+ cairo_list_init (entry);
+}
+
+static inline void
+cairo_list_move (cairo_list_t *entry, cairo_list_t *head)
+{
+ cairo_list_validate (head);
+ __cairo_list_del (entry->prev, entry->next);
+ __cairo_list_add (entry, head, head->next);
+ cairo_list_validate (head);
+}
+
+static inline void
+cairo_list_move_tail (cairo_list_t *entry, cairo_list_t *head)
+{
+ cairo_list_validate (head);
+ __cairo_list_del (entry->prev, entry->next);
+ __cairo_list_add (entry, head->prev, head);
+ cairo_list_validate (head);
+}
+
+static inline void
+cairo_list_swap (cairo_list_t *entry, cairo_list_t *other)
+{
+ __cairo_list_add (entry, other->prev, other->next);
+ cairo_list_init (other);
+}
+
+static inline cairo_bool_t
+cairo_list_is_first (const cairo_list_t *entry,
+ const cairo_list_t *head)
+{
+ cairo_list_validate (head);
+ return entry->prev == head;
+}
+
+static inline cairo_bool_t
+cairo_list_is_last (const cairo_list_t *entry,
+ const cairo_list_t *head)
+{
+ cairo_list_validate (head);
+ return entry->next == head;
+}
+
+static inline cairo_bool_t
+cairo_list_is_empty (const cairo_list_t *head)
+{
+ cairo_list_validate (head);
+ return head->next == head;
+}
+
+static inline cairo_bool_t
+cairo_list_is_singular (const cairo_list_t *head)
+{
+ cairo_list_validate (head);
+ return head->next == head || head->next == head->prev;
+}
+
+#endif /* CAIRO_LIST_INLINE_H */
diff --git a/src/cairo-list-private.h b/src/cairo-list-private.h
index ddfd0a4..9f39b66 100644
--- a/src/cairo-list-private.h
+++ b/src/cairo-list-private.h
@@ -45,171 +45,4 @@ typedef struct _cairo_list {
struct _cairo_list *next, *prev;
} cairo_list_t;
-#define cairo_list_entry(ptr, type, member) \
- cairo_container_of(ptr, type, member)
-
-#define cairo_list_first_entry(ptr, type, member) \
- cairo_list_entry((ptr)->next, type, member)
-
-#define cairo_list_last_entry(ptr, type, member) \
- cairo_list_entry((ptr)->prev, type, member)
-
-#define cairo_list_foreach(pos, head) \
- for (pos = (head)->next; pos != (head); pos = pos->next)
-
-#define cairo_list_foreach_entry(pos, type, head, member) \
- for (pos = cairo_list_entry((head)->next, type, member);\
- &pos->member != (head); \
- pos = cairo_list_entry(pos->member.next, type, member))
-
-#define cairo_list_foreach_entry_safe(pos, n, type, head, member) \
- for (pos = cairo_list_entry ((head)->next, type, member),\
- n = cairo_list_entry (pos->member.next, type, member);\
- &pos->member != (head); \
- pos = n, n = cairo_list_entry (n->member.next, type, member))
-
-#define cairo_list_foreach_entry_reverse(pos, type, head, member) \
- for (pos = cairo_list_entry((head)->prev, type, member);\
- &pos->member != (head); \
- pos = cairo_list_entry(pos->member.prev, type, member))
-
-#define cairo_list_foreach_entry_reverse_safe(pos, n, type, head, member) \
- for (pos = cairo_list_entry((head)->prev, type, member),\
- n = cairo_list_entry (pos->member.prev, type, member);\
- &pos->member != (head); \
- pos = n, n = cairo_list_entry (n->member.prev, type, member))
-
-#ifdef CAIRO_LIST_DEBUG
-static inline void
-_cairo_list_validate (const cairo_list_t *link)
-{
- assert (link->next->prev == link);
- assert (link->prev->next == link);
-}
-static inline void
-cairo_list_validate (const cairo_list_t *head)
-{
- cairo_list_t *link;
-
- cairo_list_foreach (link, head)
- _cairo_list_validate (link);
-}
-static inline cairo_bool_t
-cairo_list_is_empty (const cairo_list_t *head);
-static inline void
-cairo_list_validate_is_empty (const cairo_list_t *head)
-{
- assert (head->next == NULL || (cairo_list_is_empty (head) && head->next == head->prev));
-}
-#else
-#define _cairo_list_validate(link)
-#define cairo_list_validate(head)
-#define cairo_list_validate_is_empty(head)
-#endif
-
-static inline void
-cairo_list_init (cairo_list_t *entry)
-{
- entry->next = entry;
- entry->prev = entry;
-}
-
-static inline void
-__cairo_list_add (cairo_list_t *entry,
- cairo_list_t *prev,
- cairo_list_t *next)
-{
- next->prev = entry;
- entry->next = next;
- entry->prev = prev;
- prev->next = entry;
-}
-
-static inline void
-cairo_list_add (cairo_list_t *entry, cairo_list_t *head)
-{
- cairo_list_validate (head);
- cairo_list_validate_is_empty (entry);
- __cairo_list_add (entry, head, head->next);
- cairo_list_validate (head);
-}
-
-static inline void
-cairo_list_add_tail (cairo_list_t *entry, cairo_list_t *head)
-{
- cairo_list_validate (head);
- cairo_list_validate_is_empty (entry);
- __cairo_list_add (entry, head->prev, head);
- cairo_list_validate (head);
-}
-
-static inline void
-__cairo_list_del (cairo_list_t *prev, cairo_list_t *next)
-{
- next->prev = prev;
- prev->next = next;
-}
-
-static inline void
-cairo_list_del (cairo_list_t *entry)
-{
- __cairo_list_del (entry->prev, entry->next);
- cairo_list_init (entry);
-}
-
-static inline void
-cairo_list_move (cairo_list_t *entry, cairo_list_t *head)
-{
- cairo_list_validate (head);
- __cairo_list_del (entry->prev, entry->next);
- __cairo_list_add (entry, head, head->next);
- cairo_list_validate (head);
-}
-
-static inline void
-cairo_list_move_tail (cairo_list_t *entry, cairo_list_t *head)
-{
- cairo_list_validate (head);
- __cairo_list_del (entry->prev, entry->next);
- __cairo_list_add (entry, head->prev, head);
- cairo_list_validate (head);
-}
-
-static inline void
-cairo_list_swap (cairo_list_t *entry, cairo_list_t *other)
-{
- __cairo_list_add (entry, other->prev, other->next);
- cairo_list_init (other);
-}
-
-static inline cairo_bool_t
-cairo_list_is_first (const cairo_list_t *entry,
- const cairo_list_t *head)
-{
- cairo_list_validate (head);
- return entry->prev == head;
-}
-
-static inline cairo_bool_t
-cairo_list_is_last (const cairo_list_t *entry,
- const cairo_list_t *head)
-{
- cairo_list_validate (head);
- return entry->next == head;
-}
-
-static inline cairo_bool_t
-cairo_list_is_empty (const cairo_list_t *head)
-{
- cairo_list_validate (head);
- return head->next == head;
-}
-
-static inline cairo_bool_t
-cairo_list_is_singular (const cairo_list_t *head)
-{
- cairo_list_validate (head);
- return head->next == head || head->next == head->prev;
-}
-
#endif /* CAIRO_LIST_PRIVATE_H */
diff --git a/src/cairo-observer.c b/src/cairo-observer.c
index 7c7b69c..36d6b93 100644
--- a/src/cairo-observer.c
+++ b/src/cairo-observer.c
@@ -36,6 +36,8 @@
#include "cairoint.h"
+#include "cairo-list-inline.h"
+
void
_cairo_observers_notify (cairo_list_t *observers, void *arg)
{
diff --git a/src/cairo-path-fixed.c b/src/cairo-path-fixed.c
index e86a489..459c680 100644
--- a/src/cairo-path-fixed.c
+++ b/src/cairo-path-fixed.c
@@ -40,6 +40,7 @@
#include "cairo-box-inline.h"
#include "cairo-error-private.h"
+#include "cairo-list-inline.h"
#include "cairo-path-fixed-private.h"
#include "cairo-slope-private.h"
diff --git a/src/cairo-pattern-inline.h b/src/cairo-pattern-inline.h
index 760c787..97e8ea0 100644
--- a/src/cairo-pattern-inline.h
+++ b/src/cairo-pattern-inline.h
@@ -38,6 +38,8 @@
#include "cairo-pattern-private.h"
+#include "cairo-list-inline.h"
+
CAIRO_BEGIN_DECLS
static inline void
diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c
index 3904c75..d21200a 100644
--- a/src/cairo-pattern.c
+++ b/src/cairo-pattern.c
@@ -34,6 +34,7 @@
#include "cairo-error-private.h"
#include "cairo-freed-pool-private.h"
#include "cairo-image-surface-private.h"
+#include "cairo-list-inline.h"
#include "cairo-path-private.h"
#include "cairo-pattern-private.h"
#include "cairo-recording-surface-inline.h"
diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c
index dc01c6c..f667400 100644
--- a/src/cairo-ps-surface.c
+++ b/src/cairo-ps-surface.c
@@ -67,6 +67,7 @@
#include "cairo-default-context-private.h"
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
+#include "cairo-list-inline.h"
#include "cairo-scaled-font-subsets-private.h"
#include "cairo-paginated-private.h"
#include "cairo-recording-surface-private.h"
diff --git a/src/cairo-rtree-private.h b/src/cairo-rtree-private.h
index b8db477..27806ca 100644
--- a/src/cairo-rtree-private.h
+++ b/src/cairo-rtree-private.h
@@ -42,7 +42,7 @@
#include "cairo-types-private.h"
#include "cairo-freelist-private.h"
-#include "cairo-list-private.h"
+#include "cairo-list-inline.h"
enum {
CAIRO_RTREE_NODE_AVAILABLE,
diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c
index e6552ec..59440b2 100644
--- a/src/cairo-scaled-font.c
+++ b/src/cairo-scaled-font.c
@@ -41,6 +41,7 @@
#include "cairoint.h"
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
+#include "cairo-list-inline.h"
#include "cairo-pattern-private.h"
#include "cairo-scaled-font-private.h"
#include "cairo-surface-backend-private.h"
diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c
index 879281d..e6867c1 100644
--- a/src/cairo-script-surface.c
+++ b/src/cairo-script-surface.c
@@ -73,7 +73,7 @@
#include "cairo-default-context-private.h"
#include "cairo-device-private.h"
#include "cairo-error-private.h"
-#include "cairo-list-private.h"
+#include "cairo-list-inline.h"
#include "cairo-image-surface-private.h"
#include "cairo-output-stream-private.h"
#include "cairo-pattern-private.h"
diff --git a/src/cairo-surface-observer.c b/src/cairo-surface-observer.c
index 4929141..9247bc4 100644
--- a/src/cairo-surface-observer.c
+++ b/src/cairo-surface-observer.c
@@ -43,6 +43,7 @@
#include "cairo-composite-rectangles-private.h"
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
+#include "cairo-list-inline.h"
#include "cairo-pattern-private.h"
#include "cairo-output-stream-private.h"
#include "cairo-recording-surface-private.h"
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index 7524db9..457b3f0 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -44,6 +44,7 @@
#include "cairo-damage-private.h"
#include "cairo-device-private.h"
#include "cairo-error-private.h"
+#include "cairo-list-inline.h"
#include "cairo-image-surface-inline.h"
#include "cairo-recording-surface-private.h"
#include "cairo-region-private.h"
diff --git a/src/cairo-xcb-connection.c b/src/cairo-xcb-connection.c
index cbe8154..b48add1 100644
--- a/src/cairo-xcb-connection.c
+++ b/src/cairo-xcb-connection.c
@@ -35,7 +35,7 @@
#include "cairo-xcb-private.h"
#include "cairo-hash-private.h"
#include "cairo-freelist-private.h"
-#include "cairo-list-private.h"
+#include "cairo-list-inline.h"
#include <xcb/xcbext.h>
#include <xcb/bigreq.h>
diff --git a/src/cairo-xcb-screen.c b/src/cairo-xcb-screen.c
index 9dd476e..2858d23 100644
--- a/src/cairo-xcb-screen.c
+++ b/src/cairo-xcb-screen.c
@@ -33,6 +33,7 @@
#include "cairoint.h"
#include "cairo-xcb-private.h"
+#include "cairo-list-inline.h"
struct pattern_cache_entry {
cairo_cache_entry_t key;
diff --git a/src/cairo-xcb-shm.c b/src/cairo-xcb-shm.c
index 5244036..d655e62 100644
--- a/src/cairo-xcb-shm.c
+++ b/src/cairo-xcb-shm.c
@@ -39,6 +39,7 @@
#if CAIRO_HAS_XCB_SHM_FUNCTIONS
#include "cairo-xcb-private.h"
+#include "cairo-list-inline.h"
#include <xcb/shm.h>
#include <sys/ipc.h>
diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c
index d41363e..7736ed8 100644
--- a/src/cairo-xcb-surface-render.c
+++ b/src/cairo-xcb-surface-render.c
@@ -38,6 +38,7 @@
#include "cairo-clip-private.h"
#include "cairo-composite-rectangles-private.h"
#include "cairo-image-surface-private.h"
+#include "cairo-list-inline.h"
#include "cairo-region-private.h"
#include "cairo-surface-offset-private.h"
#include "cairo-surface-snapshot-inline.h"
diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c
index 6bedbda..4b1b906 100644
--- a/src/cairo-xcb-surface.c
+++ b/src/cairo-xcb-surface.c
@@ -45,6 +45,7 @@
#include "cairo-composite-rectangles-private.h"
#include "cairo-default-context-private.h"
+#include "cairo-list-inline.h"
#include "cairo-image-surface-private.h"
#include "cairo-surface-backend-private.h"
diff --git a/src/cairo-xlib-display.c b/src/cairo-xlib-display.c
index 74c085e..e685c7c 100644
--- a/src/cairo-xlib-display.c
+++ b/src/cairo-xlib-display.c
@@ -41,6 +41,7 @@
#include "cairo-xlib-xrender-private.h"
#include "cairo-freelist-private.h"
#include "cairo-error-private.h"
+#include "cairo-list-inline.h"
#include <X11/Xlibint.h> /* For XESetCloseDisplay */
diff --git a/src/cairo-xlib-render-compositor.c b/src/cairo-xlib-render-compositor.c
index 401313b..a892985 100644
--- a/src/cairo-xlib-render-compositor.c
+++ b/src/cairo-xlib-render-compositor.c
@@ -48,6 +48,7 @@
#include "cairo-compositor-private.h"
#include "cairo-image-surface-private.h"
+#include "cairo-list-inline.h"
#include "cairo-pattern-private.h"
#include "cairo-traps-private.h"
#include "cairo-tristrip-private.h"
diff --git a/src/cairo-xlib-screen.c b/src/cairo-xlib-screen.c
index 7bfdf15..57beeaa 100644
--- a/src/cairo-xlib-screen.c
+++ b/src/cairo-xlib-screen.c
@@ -61,6 +61,7 @@
#include "cairo-xlib-surface-private.h"
#include "cairo-error-private.h"
+#include "cairo-list-inline.h"
#include "cairo-fontconfig-private.h"
diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
index 489e52d..0645da6 100644
--- a/src/cairo-xlib-surface.c
+++ b/src/cairo-xlib-surface.c
@@ -57,6 +57,7 @@
#include "cairo-default-context-private.h"
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
+#include "cairo-list-inline.h"
#include "cairo-pattern-private.h"
#include "cairo-region-private.h"
#include "cairo-scaled-font-private.h"
diff --git a/src/cairo-xlib-xcb-surface.c b/src/cairo-xlib-xcb-surface.c
index 2f8fb4c..caa9bd3 100644
--- a/src/cairo-xlib-xcb-surface.c
+++ b/src/cairo-xlib-xcb-surface.c
@@ -47,6 +47,7 @@
#include "cairo-xlib-xrender-private.h"
#include "cairo-default-context-private.h"
+#include "cairo-list-inline.h"
#include "cairo-image-surface-private.h"
#include "cairo-surface-backend-private.h"
commit df62accbda19276c68753e799a32443b47d4e939
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-surface-subsurface-private into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index 84c4c29..9ea87f8 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -116,6 +116,7 @@ cairo_private = \
cairo-surface-observer-inline.h \
cairo-surface-observer-private.h \
cairo-surface-offset-private.h \
+ cairo-surface-subsurface-inline.h \
cairo-surface-subsurface-private.h \
cairo-surface-snapshot-inline.h \
cairo-surface-snapshot-private.h \
diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c
index de2e7d3..5583f25 100644
--- a/src/cairo-analysis-surface.c
+++ b/src/cairo-analysis-surface.c
@@ -43,7 +43,7 @@
#include "cairo-paginated-private.h"
#include "cairo-recording-surface-inline.h"
#include "cairo-surface-snapshot-inline.h"
-#include "cairo-surface-subsurface-private.h"
+#include "cairo-surface-subsurface-inline.h"
#include "cairo-region-private.h"
typedef struct {
diff --git a/src/cairo-cogl-surface.c b/src/cairo-cogl-surface.c
index 81e768b..ed86acc 100644
--- a/src/cairo-cogl-surface.c
+++ b/src/cairo-cogl-surface.c
@@ -46,7 +46,7 @@
#include "cairo-cogl-context-private.h"
#include "cairo-cogl-utils-private.h"
#include "cairo-box-inline.h"
-#include "cairo-surface-subsurface-private.h"
+#include "cairo-surface-subsurface-inline.h"
#include "cairo-surface-fallback-private.h"
#include "cairo-surface-offset-private.h"
diff --git a/src/cairo-gl-operand.c b/src/cairo-gl-operand.c
index ddff5e7..a6c7185 100644
--- a/src/cairo-gl-operand.c
+++ b/src/cairo-gl-operand.c
@@ -50,7 +50,7 @@
#include "cairo-image-surface-private.h"
#include "cairo-surface-backend-private.h"
#include "cairo-surface-offset-private.h"
-#include "cairo-surface-subsurface-private.h"
+#include "cairo-surface-subsurface-inline.h"
static cairo_int_status_t
_cairo_gl_create_gradient_texture (cairo_gl_surface_t *dst,
diff --git a/src/cairo-paginated-surface.c b/src/cairo-paginated-surface.c
index 957cf7b..fe9ccee 100644
--- a/src/cairo-paginated-surface.c
+++ b/src/cairo-paginated-surface.c
@@ -50,7 +50,7 @@
#include "cairo-analysis-surface-private.h"
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
-#include "cairo-surface-subsurface-private.h"
+#include "cairo-surface-subsurface-inline.h"
static const cairo_surface_backend_t cairo_paginated_surface_backend;
diff --git a/src/cairo-surface-observer.c b/src/cairo-surface-observer.c
index ff90276..4929141 100644
--- a/src/cairo-surface-observer.c
+++ b/src/cairo-surface-observer.c
@@ -46,7 +46,7 @@
#include "cairo-pattern-private.h"
#include "cairo-output-stream-private.h"
#include "cairo-recording-surface-private.h"
-#include "cairo-surface-subsurface-private.h"
+#include "cairo-surface-subsurface-inline.h"
#include "cairo-reference-count-private.h"
#if CAIRO_HAS_SCRIPT_SURFACE
diff --git a/src/cairo-surface-subsurface-inline.h b/src/cairo-surface-subsurface-inline.h
new file mode 100644
index 0000000..0cd09e6
--- /dev/null
+++ b/src/cairo-surface-subsurface-inline.h
@@ -0,0 +1,72 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2009 Intel Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is Intel Corporation.
+ *
+ * Contributor(s):
+ * Chris Wilson <chris at chris-wilson.co.uk>
+ */
+
+#ifndef CAIRO_SURFACE_SUBSURFACE_INLINE_H
+#define CAIRO_SURFACE_SUBSURFACE_INLINE_H
+
+#include "cairo-surface-subsurface-private.h"
+
+static inline cairo_surface_t *
+_cairo_surface_subsurface_get_target (cairo_surface_t *surface)
+{
+ return ((cairo_surface_subsurface_t *) surface)->target;
+}
+
+static inline void
+_cairo_surface_subsurface_offset (cairo_surface_t *surface,
+ int *x, int *y)
+{
+ cairo_surface_subsurface_t *ss = (cairo_surface_subsurface_t *) surface;
+ *x += ss->extents.x;
+ *y += ss->extents.y;
+}
+
+static inline cairo_surface_t *
+_cairo_surface_subsurface_get_target_with_offset (cairo_surface_t *surface,
+ int *x, int *y)
+{
+ cairo_surface_subsurface_t *ss = (cairo_surface_subsurface_t *) surface;
+ *x += ss->extents.x;
+ *y += ss->extents.y;
+ return ss->target;
+}
+
+static inline cairo_bool_t
+_cairo_surface_is_subsurface (cairo_surface_t *surface)
+{
+ return surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE;
+}
+
+#endif /* CAIRO_SURFACE_SUBSURFACE_INLINE_H */
diff --git a/src/cairo-surface-subsurface-private.h b/src/cairo-surface-subsurface-private.h
index 6dcdb51..89c5cc0 100644
--- a/src/cairo-surface-subsurface-private.h
+++ b/src/cairo-surface-subsurface-private.h
@@ -48,38 +48,8 @@ struct _cairo_surface_subsurface {
cairo_surface_t *snapshot;
};
-static inline cairo_surface_t *
-_cairo_surface_subsurface_get_target (cairo_surface_t *surface)
-{
- return ((cairo_surface_subsurface_t *) surface)->target;
-}
-
-static inline void
-_cairo_surface_subsurface_offset (cairo_surface_t *surface,
- int *x, int *y)
-{
- cairo_surface_subsurface_t *ss = (cairo_surface_subsurface_t *) surface;
- *x += ss->extents.x;
- *y += ss->extents.y;
-}
-
-static inline cairo_surface_t *
-_cairo_surface_subsurface_get_target_with_offset (cairo_surface_t *surface,
- int *x, int *y)
-{
- cairo_surface_subsurface_t *ss = (cairo_surface_subsurface_t *) surface;
- *x += ss->extents.x;
- *y += ss->extents.y;
- return ss->target;
-}
-
-static inline cairo_bool_t
-_cairo_surface_is_subsurface (cairo_surface_t *surface)
-{
- return surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE;
-}
-
cairo_private void
_cairo_surface_subsurface_set_snapshot (cairo_surface_t *surface,
cairo_surface_t *snapshot);
+
#endif /* CAIRO_SURFACE_SUBSURFACE_PRIVATE_H */
diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c
index 7a26b07..f8dac70 100644
--- a/src/cairo-xlib-source.c
+++ b/src/cairo-xlib-source.c
@@ -54,7 +54,7 @@
#include "cairo-surface-offset-private.h"
#include "cairo-surface-observer-private.h"
#include "cairo-surface-snapshot-inline.h"
-#include "cairo-surface-subsurface-private.h"
+#include "cairo-surface-subsurface-inline.h"
#define PIXMAN_MAX_INT ((pixman_fixed_1 >> 1) - pixman_fixed_e) /* need to ensure deltas also fit */
commit 590202dbfba709cfdd8ad3c241e7af06b3c542e9
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-error-private into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index 2fdb7fa..84c4c29 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -71,6 +71,7 @@ cairo_private = \
cairo-damage-private.h \
cairo-default-context-private.h \
cairo-device-private.h \
+ cairo-error-inline.h \
cairo-error-private.h \
cairo-fixed-private.h \
cairo-fixed-type-private.h \
diff --git a/src/cairo-error-inline.h b/src/cairo-error-inline.h
new file mode 100644
index 0000000..9126c5e
--- /dev/null
+++ b/src/cairo-error-inline.h
@@ -0,0 +1,52 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2002 University of Southern California
+ * Copyright © 2005 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is University of Southern
+ * California.
+ *
+ * Contributor(s):
+ * Carl D. Worth <cworth at cworth.org>
+ */
+
+#ifndef _CAIRO_ERROR_INLINE_H_
+#define _CAIRO_ERROR_INLINE_H_
+
+#include "cairo-error-private.h"
+
+CAIRO_BEGIN_DECLS
+
+static inline cairo_status_t
+_cairo_public_status (cairo_int_status_t status)
+{
+ assert (status <= CAIRO_INT_STATUS_LAST_STATUS);
+ return (cairo_status_t) status;
+}
+
+#endif /* _CAIRO_ERROR_INLINE_H_ */
diff --git a/src/cairo-error-private.h b/src/cairo-error-private.h
index a548a35..ea9c2ea 100644
--- a/src/cairo-error-private.h
+++ b/src/cairo-error-private.h
@@ -109,13 +109,6 @@ typedef enum _cairo_int_status cairo_int_status_t;
#define _cairo_int_status_is_error(status) \
(status != CAIRO_INT_STATUS_SUCCESS && status < CAIRO_INT_STATUS_LAST_STATUS)
-static inline cairo_status_t
-_cairo_public_status (cairo_int_status_t status)
-{
- assert (status <= CAIRO_INT_STATUS_LAST_STATUS);
- return (cairo_status_t) status;
-}
-
cairo_private cairo_status_t
_cairo_error (cairo_status_t status);
commit 2e7d60e0a29494d94a05205ec83f3dae2041811f
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-pattern-private into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index dbe7555..2fdb7fa 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -94,6 +94,7 @@ cairo_private = \
cairo-paginated-surface-private.h \
cairo-path-fixed-private.h \
cairo-path-private.h \
+ cairo-pattern-inline.h \
cairo-pattern-private.h \
cairo-private.h \
cairo-recording-surface-inline.h \
diff --git a/src/cairo-image-source.c b/src/cairo-image-source.c
index 4323578..ec557c5 100644
--- a/src/cairo-image-source.c
+++ b/src/cairo-image-source.c
@@ -48,7 +48,7 @@
#include "cairo-compositor-private.h"
#include "cairo-error-private.h"
-#include "cairo-pattern-private.h"
+#include "cairo-pattern-inline.h"
#include "cairo-paginated-private.h"
#include "cairo-recording-surface-private.h"
#include "cairo-surface-observer-private.h"
diff --git a/src/cairo-mask-compositor.c b/src/cairo-mask-compositor.c
index 8dbd359..7976a79 100644
--- a/src/cairo-mask-compositor.c
+++ b/src/cairo-mask-compositor.c
@@ -48,7 +48,7 @@
#include "cairo-clip-inline.h"
#include "cairo-compositor-private.h"
#include "cairo-image-surface-private.h"
-#include "cairo-pattern-private.h"
+#include "cairo-pattern-inline.h"
#include "cairo-region-private.h"
#include "cairo-surface-observer-private.h"
#include "cairo-surface-offset-private.h"
diff --git a/src/cairo-pattern-inline.h b/src/cairo-pattern-inline.h
new file mode 100644
index 0000000..760c787
--- /dev/null
+++ b/src/cairo-pattern-inline.h
@@ -0,0 +1,63 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2005 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is Red Hat, Inc.
+ *
+ * Contributor(s):
+ * Carl D. Worth <cworth at redhat.com>
+ */
+
+#ifndef CAIRO_PATTERN_INLINE_H
+#define CAIRO_PATTERN_INLINE_H
+
+#include "cairo-pattern-private.h"
+
+CAIRO_BEGIN_DECLS
+
+static inline void
+_cairo_pattern_add_observer (cairo_pattern_t *pattern,
+ cairo_pattern_observer_t *observer,
+ void (*func) (cairo_pattern_observer_t *,
+ cairo_pattern_t *,
+ unsigned int))
+{
+ observer->notify = func;
+ cairo_list_add (&observer->link, &pattern->observers);
+}
+
+static inline cairo_surface_t *
+_cairo_pattern_get_source (const cairo_surface_pattern_t *pattern,
+ cairo_rectangle_int_t *extents)
+{
+ return _cairo_surface_get_source (pattern->surface, extents);
+}
+
+CAIRO_END_DECLS
+
+#endif /* CAIRO_PATTERN_INLINE_H */
diff --git a/src/cairo-pattern-private.h b/src/cairo-pattern-private.h
index 761fce3..ddbb2c8 100644
--- a/src/cairo-pattern-private.h
+++ b/src/cairo-pattern-private.h
@@ -327,17 +327,6 @@ cairo_private cairo_bool_t
_cairo_pattern_equal (const cairo_pattern_t *a,
const cairo_pattern_t *b);
-static inline void
-_cairo_pattern_add_observer (cairo_pattern_t *pattern,
- cairo_pattern_observer_t *observer,
- void (*func) (cairo_pattern_observer_t *,
- cairo_pattern_t *,
- unsigned int))
-{
- observer->notify = func;
- cairo_list_add (&observer->link, &pattern->observers);
-}
-
/* cairo-mesh-pattern-rasterizer.c */
cairo_private void
@@ -371,15 +360,6 @@ _cairo_raster_source_pattern_finish (cairo_pattern_t *abstract_pattern);
cairo_private void
_cairo_debug_print_pattern (FILE *file, const cairo_pattern_t *pattern);
-static inline cairo_surface_t *
-_cairo_pattern_get_source (const cairo_surface_pattern_t *pattern,
- cairo_rectangle_int_t *extents)
-{
- return _cairo_surface_get_source (pattern->surface, extents);
-}
-
CAIRO_END_DECLS
#endif /* CAIRO_PATTERN_PRIVATE */
-
-
diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c
index 425b39b..357c0ea 100644
--- a/src/cairo-spans-compositor.c
+++ b/src/cairo-spans-compositor.c
@@ -46,7 +46,7 @@
#include "cairo-clip-private.h"
#include "cairo-image-surface-private.h"
#include "cairo-paginated-private.h"
-#include "cairo-pattern-private.h"
+#include "cairo-pattern-inline.h"
#include "cairo-region-private.h"
#include "cairo-recording-surface-inline.h"
#include "cairo-spans-compositor-private.h"
diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c
index 071865b..519727b 100644
--- a/src/cairo-traps-compositor.c
+++ b/src/cairo-traps-compositor.c
@@ -49,7 +49,7 @@
#include "cairo-compositor-private.h"
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
-#include "cairo-pattern-private.h"
+#include "cairo-pattern-inline.h"
#include "cairo-paginated-private.h"
#include "cairo-recording-surface-inline.h"
#include "cairo-surface-subsurface-private.h"
diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c
index 4fb607c..7a26b07 100644
--- a/src/cairo-xlib-source.c
+++ b/src/cairo-xlib-source.c
@@ -48,7 +48,7 @@
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
#include "cairo-paginated-private.h"
-#include "cairo-pattern-private.h"
+#include "cairo-pattern-inline.h"
#include "cairo-recording-surface-private.h"
#include "cairo-surface-backend-private.h"
#include "cairo-surface-offset-private.h"
commit 306117ea7c69f9125fa062e4c5e5f9086b98d832
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-recording-surface-private into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index f62c689..dbe7555 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -81,6 +81,7 @@ cairo_private = \
cairo-gstate-private.h \
cairo-hash-private.h \
cairo-image-info-private.h \
+ cairo-image-surface-inline.h \
cairo-image-surface-private.h \
cairo-list-private.h \
cairo-malloc-private.h \
diff --git a/src/cairo-beos-surface.cpp b/src/cairo-beos-surface.cpp
index a5614e1..c976416 100644
--- a/src/cairo-beos-surface.cpp
+++ b/src/cairo-beos-surface.cpp
@@ -41,6 +41,7 @@
#include "cairo-beos.h"
#include "cairo-error-private.h"
+#include "cairo-image-surface-inline.h"
#include <new>
diff --git a/src/cairo-cogl-surface.c b/src/cairo-cogl-surface.c
index 7e74bf8..81e768b 100644
--- a/src/cairo-cogl-surface.c
+++ b/src/cairo-cogl-surface.c
@@ -38,7 +38,7 @@
#include "cairo-fixed-private.h"
#include "cairo-device-private.h"
#include "cairo-composite-rectangles-private.h"
-#include "cairo-image-surface-private.h"
+#include "cairo-image-surface-inline.h"
#include "cairo-cogl-private.h"
#include "cairo-cogl-gradient-private.h"
#include "cairo-arc-private.h"
diff --git a/src/cairo-gl-surface-legacy.c b/src/cairo-gl-surface-legacy.c
index fe35e29..61bdd1f 100644
--- a/src/cairo-gl-surface-legacy.c
+++ b/src/cairo-gl-surface-legacy.c
@@ -44,6 +44,7 @@
#include "cairo-default-context-private.h"
#include "cairo-error-private.h"
#include "cairo-gl-private.h"
+#include "cairo-image-surface-inline.h"
cairo_status_t
_cairo_gl_surface_acquire_dest_image (void *abstract_surface,
diff --git a/src/cairo-image-surface-inline.h b/src/cairo-image-surface-inline.h
new file mode 100644
index 0000000..95cbb99
--- /dev/null
+++ b/src/cairo-image-surface-inline.h
@@ -0,0 +1,82 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2002 University of Southern California
+ * Copyright © 2005 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is University of Southern
+ * California.
+ *
+ * Contributor(s):
+ * Carl D. Worth <cworth at cworth.org>
+ */
+
+#ifndef CAIRO_IMAGE_SURFACE_INLINE_H
+#define CAIRO_IMAGE_SURFACE_INLINE_H
+
+#include "cairo-image-surface-private.h"
+
+CAIRO_BEGIN_DECLS
+
+static inline void
+_cairo_image_surface_set_parent (cairo_image_surface_t *image,
+ cairo_surface_t *parent)
+{
+ image->parent = parent;
+}
+
+/**
+ * _cairo_surface_is_image:
+ * @surface: a #cairo_surface_t
+ *
+ * Checks if a surface is an #cairo_image_surface_t
+ *
+ * Return value: %TRUE if the surface is an image surface
+ **/
+static inline cairo_bool_t
+_cairo_surface_is_image (const cairo_surface_t *surface)
+{
+ return surface->backend == &_cairo_image_surface_backend;
+}
+
+/**
+ * _cairo_surface_is_image_source:
+ * @surface: a #cairo_surface_t
+ *
+ * Checks if a surface is an #cairo_image_source_t
+ *
+ * Return value: %TRUE if the surface is an image source
+ **/
+static inline cairo_bool_t
+_cairo_surface_is_image_source (const cairo_surface_t *surface)
+{
+ return surface->backend == &_cairo_image_source_backend;
+}
+
+CAIRO_END_DECLS
+
+#endif /* CAIRO_IMAGE_SURFACE_INLINE_H */
diff --git a/src/cairo-image-surface-private.h b/src/cairo-image-surface-private.h
index cef2d75..3388c64 100644
--- a/src/cairo-image-surface-private.h
+++ b/src/cairo-image-surface-private.h
@@ -216,41 +216,6 @@ _pixman_image_add_tristrip (pixman_image_t *image,
int dst_x, int dst_y,
cairo_tristrip_t *strip);
-static inline void
-_cairo_image_surface_set_parent (cairo_image_surface_t *image,
- cairo_surface_t *parent)
-{
- image->parent = parent;
-}
-
-/**
- * _cairo_surface_is_image:
- * @surface: a #cairo_surface_t
- *
- * Checks if a surface is an #cairo_image_surface_t
- *
- * Return value: %TRUE if the surface is an image surface
- **/
-static inline cairo_bool_t
-_cairo_surface_is_image (const cairo_surface_t *surface)
-{
- return surface->backend == &_cairo_image_surface_backend;
-}
-
-/**
- * _cairo_surface_is_image_source:
- * @surface: a #cairo_surface_t
- *
- * Checks if a surface is an #cairo_image_source_t
- *
- * Return value: %TRUE if the surface is an image source
- **/
-static inline cairo_bool_t
-_cairo_surface_is_image_source (const cairo_surface_t *surface)
-{
- return surface->backend == &_cairo_image_source_backend;
-}
-
CAIRO_END_DECLS
#endif /* CAIRO_IMAGE_SURFACE_PRIVATE_H */
diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c
index e860e1b..8bbea00 100644
--- a/src/cairo-image-surface.c
+++ b/src/cairo-image-surface.c
@@ -45,7 +45,7 @@
#include "cairo-compositor-private.h"
#include "cairo-default-context-private.h"
#include "cairo-error-private.h"
-#include "cairo-image-surface-private.h"
+#include "cairo-image-surface-inline.h"
#include "cairo-paginated-private.h"
#include "cairo-pattern-private.h"
#include "cairo-recording-surface-private.h"
@@ -573,7 +573,7 @@ slim_hidden_def (cairo_image_surface_get_data);
*
* Since: 1.2
**/
- cairo_format_t
+cairo_format_t
cairo_image_surface_get_format (cairo_surface_t *surface)
{
cairo_image_surface_t *image_surface = (cairo_image_surface_t *) surface;
@@ -597,7 +597,7 @@ slim_hidden_def (cairo_image_surface_get_format);
*
* Since: 1.0
**/
- int
+int
cairo_image_surface_get_width (cairo_surface_t *surface)
{
cairo_image_surface_t *image_surface = (cairo_image_surface_t *) surface;
@@ -621,7 +621,7 @@ slim_hidden_def (cairo_image_surface_get_width);
*
* Since: 1.0
**/
- int
+int
cairo_image_surface_get_height (cairo_surface_t *surface)
{
cairo_image_surface_t *image_surface = (cairo_image_surface_t *) surface;
@@ -648,7 +648,7 @@ slim_hidden_def (cairo_image_surface_get_height);
*
* Since: 1.2
**/
- int
+int
cairo_image_surface_get_stride (cairo_surface_t *surface)
{
diff --git a/src/cairo-skia-surface.cpp b/src/cairo-skia-surface.cpp
index 21d6f07..bf6b14a 100644
--- a/src/cairo-skia-surface.cpp
+++ b/src/cairo-skia-surface.cpp
@@ -39,6 +39,7 @@
#include "cairo-skia.h"
#include "cairo-surface-clipper-private.h"
+#include "cairo-image-surface-inline.h"
#include <SkBitmap.h>
#include <SkCanvas.h>
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index 3c31d8c..7524db9 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -44,7 +44,7 @@
#include "cairo-damage-private.h"
#include "cairo-device-private.h"
#include "cairo-error-private.h"
-#include "cairo-image-surface-private.h"
+#include "cairo-image-surface-inline.h"
#include "cairo-recording-surface-private.h"
#include "cairo-region-private.h"
#include "cairo-tee-surface-private.h"
diff --git a/src/cairo-tee-surface.c b/src/cairo-tee-surface.c
index 0faa88a..294e5f1 100644
--- a/src/cairo-tee-surface.c
+++ b/src/cairo-tee-surface.c
@@ -48,7 +48,7 @@
#include "cairo-recording-surface-inline.h"
#include "cairo-surface-wrapper-private.h"
#include "cairo-array-private.h"
-#include "cairo-image-surface-private.h"
+#include "cairo-image-surface-inline.h"
typedef struct _cairo_tee_surface {
cairo_surface_t base;
diff --git a/src/drm/cairo-drm-surface.c b/src/drm/cairo-drm-surface.c
index a8a8f32..8c4dd0e 100644
--- a/src/drm/cairo-drm-surface.c
+++ b/src/drm/cairo-drm-surface.c
@@ -35,6 +35,7 @@
#include "cairo-drm-private.h"
#include "cairo-error-private.h"
+#include "cairo-image-surface-inline.h"
void
_cairo_drm_surface_init (cairo_drm_surface_t *surface,
diff --git a/src/skia/cairo-skia-context.cpp b/src/skia/cairo-skia-context.cpp
index 327e536..a08b3fb 100644
--- a/src/skia/cairo-skia-context.cpp
+++ b/src/skia/cairo-skia-context.cpp
@@ -47,6 +47,7 @@
#include "cairo-default-context-private.h"
#include "cairo-freed-pool-private.h"
#include "cairo-gstate-private.h"
+#include "cairo-image-surface-inline.h"
#include "cairo-path-private.h"
#include "cairo-pattern-private.h"
#include "cairo-skia-private.h"
commit 8653c2692e684a60370b99e545123ba2a7b00bc8
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-recording-surface-private into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index dde2011..f62c689 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -95,6 +95,7 @@ cairo_private = \
cairo-path-private.h \
cairo-pattern-private.h \
cairo-private.h \
+ cairo-recording-surface-inline.h \
cairo-recording-surface-private.h \
cairo-reference-count-private.h \
cairo-region-private.h \
@@ -113,6 +114,7 @@ cairo_private = \
cairo-surface-observer-private.h \
cairo-surface-offset-private.h \
cairo-surface-subsurface-private.h \
+ cairo-surface-snapshot-inline.h \
cairo-surface-snapshot-private.h \
cairo-surface-wrapper-private.h \
cairo-time-private.h \
diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c
index e1d7d58..de2e7d3 100644
--- a/src/cairo-analysis-surface.c
+++ b/src/cairo-analysis-surface.c
@@ -41,8 +41,8 @@
#include "cairo-default-context-private.h"
#include "cairo-error-private.h"
#include "cairo-paginated-private.h"
-#include "cairo-recording-surface-private.h"
-#include "cairo-surface-snapshot-private.h"
+#include "cairo-recording-surface-inline.h"
+#include "cairo-surface-snapshot-inline.h"
#include "cairo-surface-subsurface-private.h"
#include "cairo-region-private.h"
diff --git a/src/cairo-image-source.c b/src/cairo-image-source.c
index be3d385..4323578 100644
--- a/src/cairo-image-source.c
+++ b/src/cairo-image-source.c
@@ -52,7 +52,7 @@
#include "cairo-paginated-private.h"
#include "cairo-recording-surface-private.h"
#include "cairo-surface-observer-private.h"
-#include "cairo-surface-snapshot-private.h"
+#include "cairo-surface-snapshot-inline.h"
#include "cairo-surface-subsurface-private.h"
#define PIXMAN_MAX_INT ((pixman_fixed_1 >> 1) - pixman_fixed_e) /* need to ensure deltas also fit */
diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c
index 5b3e177..3904c75 100644
--- a/src/cairo-pattern.c
+++ b/src/cairo-pattern.c
@@ -36,8 +36,8 @@
#include "cairo-image-surface-private.h"
#include "cairo-path-private.h"
#include "cairo-pattern-private.h"
-#include "cairo-recording-surface-private.h"
-#include "cairo-surface-snapshot-private.h"
+#include "cairo-recording-surface-inline.h"
+#include "cairo-surface-snapshot-inline.h"
#include <float.h>
diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c
index 78537ce..a0a20e8 100644
--- a/src/cairo-pdf-surface.c
+++ b/src/cairo-pdf-surface.c
@@ -59,7 +59,7 @@
#include "cairo-paginated-private.h"
#include "cairo-scaled-font-subsets-private.h"
#include "cairo-surface-clipper-private.h"
-#include "cairo-surface-snapshot-private.h"
+#include "cairo-surface-snapshot-inline.h"
#include "cairo-surface-subsurface-private.h"
#include "cairo-type3-glyph-surface-private.h"
diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c
index c5ea680..dc01c6c 100644
--- a/src/cairo-ps-surface.c
+++ b/src/cairo-ps-surface.c
@@ -71,7 +71,7 @@
#include "cairo-paginated-private.h"
#include "cairo-recording-surface-private.h"
#include "cairo-surface-clipper-private.h"
-#include "cairo-surface-snapshot-private.h"
+#include "cairo-surface-snapshot-inline.h"
#include "cairo-surface-subsurface-private.h"
#include "cairo-output-stream-private.h"
#include "cairo-type3-glyph-surface-private.h"
diff --git a/src/cairo-recording-surface-inline.h b/src/cairo-recording-surface-inline.h
new file mode 100644
index 0000000..9002ccd
--- /dev/null
+++ b/src/cairo-recording-surface-inline.h
@@ -0,0 +1,68 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2005 Red Hat, Inc
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is Red Hat, Inc.
+ *
+ * Contributor(s):
+ * Kristian Høgsberg <krh at redhat.com>
+ * Adrian Johnson <ajohnson at redneon.com>
+ */
+
+#ifndef CAIRO_RECORDING_SURFACE_INLINE_H
+#define CAIRO_RECORDING_SURFACE_INLINE_H
+
+#include "cairo-recording-surface-private.h"
+
+static inline cairo_bool_t
+_cairo_recording_surface_get_bounds (cairo_surface_t *surface,
+ cairo_rectangle_t *extents)
+{
+ cairo_recording_surface_t *recording = (cairo_recording_surface_t *)surface;
+ if (recording->unbounded)
+ return FALSE;
+
+ *extents = recording->extents_pixels;
+ return TRUE;
+}
+
+/**
+ * _cairo_surface_is_recording:
+ * @surface: a #cairo_surface_t
+ *
+ * Checks if a surface is a #cairo_recording_surface_t
+ *
+ * Return value: %TRUE if the surface is a recording surface
+ **/
+static inline cairo_bool_t
+_cairo_surface_is_recording (const cairo_surface_t *surface)
+{
+ return surface->backend->type == CAIRO_SURFACE_TYPE_RECORDING;
+}
+
+#endif /* CAIRO_RECORDING_SURFACE_INLINE_H */
diff --git a/src/cairo-recording-surface-private.h b/src/cairo-recording-surface-private.h
index 6e93eab..0235b0f 100644
--- a/src/cairo-recording-surface-private.h
+++ b/src/cairo-recording-surface-private.h
@@ -184,30 +184,4 @@ _cairo_recording_surface_get_ink_bbox (cairo_recording_surface_t *surface,
cairo_box_t *bbox,
const cairo_matrix_t *transform);
-static inline cairo_bool_t
-_cairo_recording_surface_get_bounds (cairo_surface_t *surface,
- cairo_rectangle_t *extents)
-{
- cairo_recording_surface_t *recording = (cairo_recording_surface_t *)surface;
- if (recording->unbounded)
- return FALSE;
-
- *extents = recording->extents_pixels;
- return TRUE;
-}
-
-/**
- * _cairo_surface_is_recording:
- * @surface: a #cairo_surface_t
- *
- * Checks if a surface is a #cairo_recording_surface_t
- *
- * Return value: %TRUE if the surface is a recording surface
- **/
-static inline cairo_bool_t
-_cairo_surface_is_recording (const cairo_surface_t *surface)
-{
- return surface->backend->type == CAIRO_SURFACE_TYPE_RECORDING;
-}
-
#endif /* CAIRO_RECORDING_SURFACE_H */
diff --git a/src/cairo-recording-surface.c b/src/cairo-recording-surface.c
index 11a847c..02d8afd 100644
--- a/src/cairo-recording-surface.c
+++ b/src/cairo-recording-surface.c
@@ -86,7 +86,7 @@
#include "cairo-default-context-private.h"
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
-#include "cairo-recording-surface-private.h"
+#include "cairo-recording-surface-inline.h"
#include "cairo-surface-wrapper-private.h"
#include "cairo-traps-private.h"
diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c
index 74177e0..879281d 100644
--- a/src/cairo-script-surface.c
+++ b/src/cairo-script-surface.c
@@ -77,10 +77,10 @@
#include "cairo-image-surface-private.h"
#include "cairo-output-stream-private.h"
#include "cairo-pattern-private.h"
-#include "cairo-recording-surface-private.h"
+#include "cairo-recording-surface-inline.h"
#include "cairo-scaled-font-private.h"
#include "cairo-surface-clipper-private.h"
-#include "cairo-surface-snapshot-private.h"
+#include "cairo-surface-snapshot-inline.h"
#include "cairo-surface-subsurface-private.h"
#include "cairo-surface-wrapper-private.h"
diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c
index 9474b47..425b39b 100644
--- a/src/cairo-spans-compositor.c
+++ b/src/cairo-spans-compositor.c
@@ -48,7 +48,7 @@
#include "cairo-paginated-private.h"
#include "cairo-pattern-private.h"
#include "cairo-region-private.h"
-#include "cairo-recording-surface-private.h"
+#include "cairo-recording-surface-inline.h"
#include "cairo-spans-compositor-private.h"
#include "cairo-surface-subsurface-private.h"
#include "cairo-surface-snapshot-private.h"
diff --git a/src/cairo-surface-snapshot-inline.h b/src/cairo-surface-snapshot-inline.h
index 3dd05d4..5bf3444 100644
--- a/src/cairo-surface-snapshot-inline.h
+++ b/src/cairo-surface-snapshot-inline.h
@@ -36,7 +36,7 @@
#ifndef CAIRO_SURFACE_SNAPSHOT_INLINE_H
#define CAIRO_SURFACE_SNAPSHOT_INLINE_H
-#include "cairo-surface-private.h"
+#include "cairo-surface-snapshot-private.h"
static inline cairo_bool_t
_cairo_surface_snapshot_is_reused (cairo_surface_t *surface)
diff --git a/src/cairo-surface-snapshot-private.h b/src/cairo-surface-snapshot-private.h
index b7a4d05..4c3369b 100644
--- a/src/cairo-surface-snapshot-private.h
+++ b/src/cairo-surface-snapshot-private.h
@@ -46,22 +46,4 @@ struct _cairo_surface_snapshot {
cairo_surface_t *clone;
};
-static inline cairo_bool_t
-_cairo_surface_snapshot_is_reused (cairo_surface_t *surface)
-{
- return CAIRO_REFERENCE_COUNT_GET_VALUE (&surface->ref_count) > 2;
-}
-
-static inline cairo_surface_t *
-_cairo_surface_snapshot_get_target (cairo_surface_t *surface)
-{
- return ((cairo_surface_snapshot_t *) surface)->target;
-}
-
-static inline cairo_bool_t
-_cairo_surface_is_snapshot (cairo_surface_t *surface)
-{
- return surface->backend->type == (cairo_surface_type_t)CAIRO_INTERNAL_SURFACE_TYPE_SNAPSHOT;
-}
-
#endif /* CAIRO_SURFACE_SNAPSHOT_PRIVATE_H */
diff --git a/src/cairo-surface-snapshot.c b/src/cairo-surface-snapshot.c
index a2f2a6c..2562d12 100644
--- a/src/cairo-surface-snapshot.c
+++ b/src/cairo-surface-snapshot.c
@@ -41,7 +41,7 @@
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
-#include "cairo-surface-snapshot-private.h"
+#include "cairo-surface-snapshot-inline.h"
static cairo_status_t
_cairo_surface_snapshot_finish (void *abstract_surface)
diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c
index 1b6505f..824a27d 100644
--- a/src/cairo-svg-surface.c
+++ b/src/cairo-svg-surface.c
@@ -50,7 +50,7 @@
#include "cairo-error-private.h"
#include "cairo-image-info-private.h"
#include "cairo-image-surface-private.h"
-#include "cairo-recording-surface-private.h"
+#include "cairo-recording-surface-inline.h"
#include "cairo-output-stream-private.h"
#include "cairo-path-fixed-private.h"
#include "cairo-paginated-private.h"
diff --git a/src/cairo-tee-surface.c b/src/cairo-tee-surface.c
index d26ea9e..0faa88a 100644
--- a/src/cairo-tee-surface.c
+++ b/src/cairo-tee-surface.c
@@ -45,7 +45,7 @@
#include "cairo-default-context-private.h"
#include "cairo-error-private.h"
#include "cairo-tee-surface-private.h"
-#include "cairo-recording-surface-private.h"
+#include "cairo-recording-surface-inline.h"
#include "cairo-surface-wrapper-private.h"
#include "cairo-array-private.h"
#include "cairo-image-surface-private.h"
diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c
index 5e11380..071865b 100644
--- a/src/cairo-traps-compositor.c
+++ b/src/cairo-traps-compositor.c
@@ -51,9 +51,9 @@
#include "cairo-image-surface-private.h"
#include "cairo-pattern-private.h"
#include "cairo-paginated-private.h"
-#include "cairo-recording-surface-private.h"
+#include "cairo-recording-surface-inline.h"
#include "cairo-surface-subsurface-private.h"
-#include "cairo-surface-snapshot-private.h"
+#include "cairo-surface-snapshot-inline.h"
#include "cairo-surface-observer-private.h"
#include "cairo-region-private.h"
#include "cairo-spans-private.h"
diff --git a/src/cairo-vg-surface.c b/src/cairo-vg-surface.c
index afbf7a0..6e0d9a0 100644
--- a/src/cairo-vg-surface.c
+++ b/src/cairo-vg-surface.c
@@ -43,7 +43,7 @@
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
#include "cairo-path-fixed-private.h"
-#include "cairo-recording-surface-private.h"
+#include "cairo-recording-surface-inline.h"
#include "cairo-surface-clipper-private.h"
#include <pixman.h>
diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c
index 74c6c84..d41363e 100644
--- a/src/cairo-xcb-surface-render.c
+++ b/src/cairo-xcb-surface-render.c
@@ -40,10 +40,10 @@
#include "cairo-image-surface-private.h"
#include "cairo-region-private.h"
#include "cairo-surface-offset-private.h"
-#include "cairo-surface-snapshot-private.h"
+#include "cairo-surface-snapshot-inline.h"
#include "cairo-surface-subsurface-private.h"
#include "cairo-traps-private.h"
-#include "cairo-recording-surface-private.h"
+#include "cairo-recording-surface-inline.h"
#include "cairo-paginated-private.h"
#define PIXMAN_MAX_INT ((pixman_fixed_1 >> 1) - pixman_fixed_e) /* need to ensure deltas also fit */
diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c
index 5498794..4fb607c 100644
--- a/src/cairo-xlib-source.c
+++ b/src/cairo-xlib-source.c
@@ -53,7 +53,7 @@
#include "cairo-surface-backend-private.h"
#include "cairo-surface-offset-private.h"
#include "cairo-surface-observer-private.h"
-#include "cairo-surface-snapshot-private.h"
+#include "cairo-surface-snapshot-inline.h"
#include "cairo-surface-subsurface-private.h"
#define PIXMAN_MAX_INT ((pixman_fixed_1 >> 1) - pixman_fixed_e) /* need to ensure deltas also fit */
diff --git a/src/cairo-xml-surface.c b/src/cairo-xml-surface.c
index a2e6a9f..777d470 100644
--- a/src/cairo-xml-surface.c
+++ b/src/cairo-xml-surface.c
@@ -50,7 +50,7 @@
#include "cairo-image-surface-private.h"
#include "cairo-error-private.h"
#include "cairo-output-stream-private.h"
-#include "cairo-recording-surface-private.h"
+#include "cairo-recording-surface-inline.h"
#define static cairo_warn static
diff --git a/src/win32/cairo-win32-printing-surface.c b/src/win32/cairo-win32-printing-surface.c
index 881a42f..be91445 100644
--- a/src/win32/cairo-win32-printing-surface.c
+++ b/src/win32/cairo-win32-printing-surface.c
@@ -52,7 +52,7 @@
#include "cairo-clip-private.h"
#include "cairo-win32-private.h"
-#include "cairo-recording-surface-private.h"
+#include "cairo-recording-surface-inline.h"
#include "cairo-scaled-font-subsets-private.h"
#include "cairo-image-info-private.h"
#include "cairo-image-surface-private.h"
commit 3266f936dee59b7c3a990e518899a72d0e103f62
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-surface-snapshot-private into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/cairo-surface-snapshot-inline.h b/src/cairo-surface-snapshot-inline.h
new file mode 100644
index 0000000..3dd05d4
--- /dev/null
+++ b/src/cairo-surface-snapshot-inline.h
@@ -0,0 +1,59 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2009 Intel Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is Intel Corporation.
+ *
+ * Contributor(s):
+ * Chris Wilson <chris at chris-wilson.co.uk>
+ */
+
+#ifndef CAIRO_SURFACE_SNAPSHOT_INLINE_H
+#define CAIRO_SURFACE_SNAPSHOT_INLINE_H
+
+#include "cairo-surface-private.h"
+
+static inline cairo_bool_t
+_cairo_surface_snapshot_is_reused (cairo_surface_t *surface)
+{
+ return CAIRO_REFERENCE_COUNT_GET_VALUE (&surface->ref_count) > 2;
+}
+
+static inline cairo_surface_t *
+_cairo_surface_snapshot_get_target (cairo_surface_t *surface)
+{
+ return ((cairo_surface_snapshot_t *) surface)->target;
+}
+
+static inline cairo_bool_t
+_cairo_surface_is_snapshot (cairo_surface_t *surface)
+{
+ return surface->backend->type == (cairo_surface_type_t)CAIRO_INTERNAL_SURFACE_TYPE_SNAPSHOT;
+}
+
+#endif /* CAIRO_SURFACE_SNAPSHOT_INLINE_H */
commit 356c7cb2e3da8d95a4bc6c40d0b1895657fd59ce
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-surface-observer-private into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index 0132d10..dde2011 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -109,6 +109,7 @@ cairo_private = \
cairo-surface-backend-private.h \
cairo-surface-clipper-private.h \
cairo-surface-fallback-private.h \
+ cairo-surface-observer-inline.h \
cairo-surface-observer-private.h \
cairo-surface-offset-private.h \
cairo-surface-subsurface-private.h \
diff --git a/src/cairo-surface-observer-inline.h b/src/cairo-surface-observer-inline.h
new file mode 100644
index 0000000..07b9477
--- /dev/null
+++ b/src/cairo-surface-observer-inline.h
@@ -0,0 +1,59 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2011 Intel Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is Intel Corporation.
+ *
+ * Contributor(s):
+ * Chris Wilson <chris at chris-wilson.co.uk>
+ */
+
+#ifndef CAIRO_SURFACE_OBSERVER_INLINE_H
+#define CAIRO_SURFACE_OBSERVER_INLINE_H
+
+#include "cairo-surface-observer-private.h"
+
+static inline cairo_surface_t *
+_cairo_surface_observer_get_target (cairo_surface_t *surface)
+{
+ return ((cairo_surface_observer_t *) surface)->target;
+}
+
+static inline cairo_bool_t
+_cairo_surface_is_observer (cairo_surface_t *surface)
+{
+ return surface->backend->type == (cairo_surface_type_t)CAIRO_INTERNAL_SURFACE_TYPE_OBSERVER;
+}
+
+static inline cairo_bool_t
+_cairo_device_is_observer (cairo_device_t *device)
+{
+ return device->backend->type == (cairo_device_type_t)CAIRO_INTERNAL_DEVICE_TYPE_OBSERVER;
+}
+
+#endif /* CAIRO_SURFACE_OBSERVER_INLINE_H */
diff --git a/src/cairo-surface-observer-private.h b/src/cairo-surface-observer-private.h
index 1b5d6d9..70c87db 100644
--- a/src/cairo-surface-observer-private.h
+++ b/src/cairo-surface-observer-private.h
@@ -205,23 +205,4 @@ struct _cairo_surface_observer {
cairo_list_t finish_callbacks;
};
-static inline cairo_surface_t *
-_cairo_surface_observer_get_target (cairo_surface_t *surface)
-{
- return ((cairo_surface_observer_t *) surface)->target;
-}
-
-static inline cairo_bool_t
-_cairo_surface_is_observer (cairo_surface_t *surface)
-{
- return surface->backend->type == (cairo_surface_type_t)CAIRO_INTERNAL_SURFACE_TYPE_OBSERVER;
-}
-
-static inline cairo_bool_t
-_cairo_device_is_observer (cairo_device_t *device)
-{
- return device->backend->type == (cairo_device_type_t)CAIRO_INTERNAL_DEVICE_TYPE_OBSERVER;
-}
-
-
-#endif /* CAIRO_SURFACE_SNAPSHOT_PRIVATE_H */
+#endif /* CAIRO_SURFACE_OBSERVER_PRIVATE_H */
diff --git a/src/cairo-surface-observer.c b/src/cairo-surface-observer.c
index d503993..ff90276 100644
--- a/src/cairo-surface-observer.c
+++ b/src/cairo-surface-observer.c
@@ -36,6 +36,7 @@
#include "cairoint.h"
#include "cairo-surface-observer-private.h"
+#include "cairo-surface-observer-inline.h"
#include "cairo-array-private.h"
#include "cairo-combsort-inline.h"
commit f3623cf0220aa32c12c3ba3988a5dfef6605d6b3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-surface-private into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index 81a4692..0132d10 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -104,6 +104,7 @@ cairo_private = \
cairo-spans-private.h \
cairo-spans-compositor-private.h \
cairo-stroke-dash-private.h \
+ cairo-surface-inline.h \
cairo-surface-private.h \
cairo-surface-backend-private.h \
cairo-surface-clipper-private.h \
diff --git a/src/cairo-surface-inline.h b/src/cairo-surface-inline.h
new file mode 100644
index 0000000..1b257d5
--- /dev/null
+++ b/src/cairo-surface-inline.h
@@ -0,0 +1,52 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2002 University of Southern California
+ * Copyright © 2005 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is University of Southern
+ * California.
+ *
+ * Contributor(s):
+ * Carl D. Worth <cworth at cworth.org>
+ */
+
+#ifndef CAIRO_SURFACE_INLINE_H
+#define CAIRO_SURFACE_INLINE_H
+
+#include "cairo-surface-private.h"
+
+static inline cairo_status_t
+_cairo_surface_flush (cairo_surface_t *surface)
+{
+ cairo_status_t status = CAIRO_STATUS_SUCCESS;
+ if (surface->backend->flush)
+ status = surface->backend->flush (surface);
+ return status;
+}
+
+#endif /* CAIRO_SURFACE_INLINE_H */
diff --git a/src/cairo-surface-private.h b/src/cairo-surface-private.h
index f6ebf22..c4d5de2 100644
--- a/src/cairo-surface-private.h
+++ b/src/cairo-surface-private.h
@@ -111,13 +111,4 @@ cairo_private cairo_surface_t *
_cairo_surface_get_source (cairo_surface_t *surface,
cairo_rectangle_int_t *extents);
-static inline cairo_status_t
-_cairo_surface_flush (cairo_surface_t *surface)
-{
- cairo_status_t status = CAIRO_STATUS_SUCCESS;
- if (surface->backend->flush)
- status = surface->backend->flush (surface);
- return status;
-}
-
#endif /* CAIRO_SURFACE_PRIVATE_H */
diff --git a/src/win32/cairo-win32-gdi-compositor.c b/src/win32/cairo-win32-gdi-compositor.c
index 001f3b7..39db674 100644
--- a/src/win32/cairo-win32-gdi-compositor.c
+++ b/src/win32/cairo-win32-gdi-compositor.c
@@ -52,6 +52,7 @@
#include "cairo-image-surface-private.h"
#include "cairo-pattern-private.h"
#include "cairo-region-private.h"
+#include "cairo-surface-inline.h"
#include "cairo-surface-offset-private.h"
#if !defined(AC_SRC_OVER)
commit 6736d0bf000a42ce426b45c923d7066bf0a27089
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-contour-privates into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index 8732e2a..81a4692 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -65,6 +65,7 @@ cairo_private = \
cairo-combsort-inline.h \
cairo-compiler-private.h \
cairo-compositor-private.h \
+ cairo-contour-inline.h \
cairo-contour-private.h \
cairo-composite-rectangles-private.h \
cairo-damage-private.h \
diff --git a/src/cairo-contour-inline.h b/src/cairo-contour-inline.h
new file mode 100644
index 0000000..7972c1a
--- /dev/null
+++ b/src/cairo-contour-inline.h
@@ -0,0 +1,80 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2011 Intel Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is Intel Corporation
+ *
+ * Contributor(s):
+ * Chris Wilson <chris at chris-wilson.co.uk>
+ */
+
+#ifndef CAIRO_CONTOUR_INLINE_H
+#define CAIRO_CONTOUR_INLINE_H
+
+#include "cairo-contour-private.h"
+
+CAIRO_BEGIN_DECLS
+
+static inline cairo_int_status_t
+_cairo_contour_add_point (cairo_contour_t *contour,
+ const cairo_point_t *point)
+{
+ struct _cairo_contour_chain *tail = contour->tail;
+
+ if (unlikely (tail->num_points == tail->size_points))
+ return __cairo_contour_add_point (contour, point);
+
+ tail->points[tail->num_points++] = *point;
+ return CAIRO_INT_STATUS_SUCCESS;
+}
+
+static inline cairo_point_t *
+_cairo_contour_first_point (cairo_contour_t *c)
+{
+ return &c->chain.points[0];
+}
+
+static inline cairo_point_t *
+_cairo_contour_last_point (cairo_contour_t *c)
+{
+ return &c->tail->points[c->tail->num_points-1];
+}
+
+static inline void
+_cairo_contour_remove_last_point (cairo_contour_t *contour)
+{
+ if (contour->chain.num_points == 0)
+ return;
+
+ if (--contour->tail->num_points == 0)
+ __cairo_contour_remove_last_chain (contour);
+}
+
+CAIRO_END_DECLS
+
+#endif /* CAIRO_CONTOUR_INLINE_H */
diff --git a/src/cairo-contour-private.h b/src/cairo-contour-private.h
index 2eb1f60..1dfc46f 100644
--- a/src/cairo-contour-private.h
+++ b/src/cairo-contour-private.h
@@ -93,31 +93,6 @@ cairo_private cairo_int_status_t
__cairo_contour_add_point (cairo_contour_t *contour,
const cairo_point_t *point);
-static inline cairo_int_status_t
-_cairo_contour_add_point (cairo_contour_t *contour,
- const cairo_point_t *point)
-{
- struct _cairo_contour_chain *tail = contour->tail;
-
- if (unlikely (tail->num_points == tail->size_points))
- return __cairo_contour_add_point (contour, point);
-
- tail->points[tail->num_points++] = *point;
- return CAIRO_INT_STATUS_SUCCESS;
-}
-
-static inline cairo_point_t *
-_cairo_contour_first_point (cairo_contour_t *c)
-{
- return &c->chain.points[0];
-}
-
-static inline cairo_point_t *
-_cairo_contour_last_point (cairo_contour_t *c)
-{
- return &c->tail->points[c->tail->num_points-1];
-}
-
cairo_private void
_cairo_contour_simplify (cairo_contour_t *contour, double tolerance);
@@ -135,16 +110,6 @@ _cairo_contour_add_reversed (cairo_contour_t *dst,
cairo_private void
__cairo_contour_remove_last_chain (cairo_contour_t *contour);
-static inline void
-_cairo_contour_remove_last_point (cairo_contour_t *contour)
-{
- if (contour->chain.num_points == 0)
- return;
-
- if (--contour->tail->num_points == 0)
- __cairo_contour_remove_last_chain (contour);
-}
-
cairo_private void
_cairo_contour_reset (cairo_contour_t *contour);
diff --git a/src/cairo-contour.c b/src/cairo-contour.c
index a8d6927..d356f4f 100644
--- a/src/cairo-contour.c
+++ b/src/cairo-contour.c
@@ -41,6 +41,7 @@
#include "cairo-error-private.h"
#include "cairo-freelist-private.h"
#include "cairo-combsort-inline.h"
+#include "cairo-contour-inline.h"
#include "cairo-contour-private.h"
void
diff --git a/src/cairo-path-stroke-polygon.c b/src/cairo-path-stroke-polygon.c
index 3ef0955..7b485a1 100644
--- a/src/cairo-path-stroke-polygon.c
+++ b/src/cairo-path-stroke-polygon.c
@@ -42,6 +42,7 @@
#include "cairo-box-inline.h"
#include "cairo-boxes-private.h"
+#include "cairo-contour-inline.h"
#include "cairo-contour-private.h"
#include "cairo-error-private.h"
#include "cairo-path-fixed-private.h"
commit afa180935bedb5c3db06706d893b2bcd89b2215b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-combsort-privates into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index 7c42e79..8732e2a 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -62,7 +62,7 @@ cairo_private = \
cairo-cache-private.h \
cairo-clip-inline.h \
cairo-clip-private.h \
- cairo-combsort-private.h \
+ cairo-combsort-inline.h \
cairo-compiler-private.h \
cairo-compositor-private.h \
cairo-contour-private.h \
diff --git a/src/cairo-bentley-ottmann-rectangular.c b/src/cairo-bentley-ottmann-rectangular.c
index aec7ae4..b69d425 100644
--- a/src/cairo-bentley-ottmann-rectangular.c
+++ b/src/cairo-bentley-ottmann-rectangular.c
@@ -40,7 +40,7 @@
#include "cairo-boxes-private.h"
#include "cairo-error-private.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
#include "cairo-list-private.h"
#include "cairo-traps-private.h"
diff --git a/src/cairo-bentley-ottmann-rectilinear.c b/src/cairo-bentley-ottmann-rectilinear.c
index 1edeeb5..7c0be69 100644
--- a/src/cairo-bentley-ottmann-rectilinear.c
+++ b/src/cairo-bentley-ottmann-rectilinear.c
@@ -39,7 +39,7 @@
#include "cairoint.h"
#include "cairo-boxes-private.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
#include "cairo-error-private.h"
#include "cairo-traps-private.h"
diff --git a/src/cairo-bentley-ottmann.c b/src/cairo-bentley-ottmann.c
index a075b40..38fe463 100644
--- a/src/cairo-bentley-ottmann.c
+++ b/src/cairo-bentley-ottmann.c
@@ -40,7 +40,7 @@
#include "cairo-error-private.h"
#include "cairo-freelist-private.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
#include "cairo-traps-private.h"
#define DEBUG_PRINT_STATE 0
diff --git a/src/cairo-botor-scan-converter.c b/src/cairo-botor-scan-converter.c
index c5b1c3f..dc1ae6b 100644
--- a/src/cairo-botor-scan-converter.c
+++ b/src/cairo-botor-scan-converter.c
@@ -45,7 +45,7 @@
#include "cairo-error-private.h"
#include "cairo-list-private.h"
#include "cairo-freelist-private.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
#include <setjmp.h>
diff --git a/src/cairo-boxes-intersect.c b/src/cairo-boxes-intersect.c
index dd4c241..96ae663 100644
--- a/src/cairo-boxes-intersect.c
+++ b/src/cairo-boxes-intersect.c
@@ -41,7 +41,7 @@
#include "cairo-boxes-private.h"
#include "cairo-error-private.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
#include "cairo-list-private.h"
#include <setjmp.h>
diff --git a/src/cairo-combsort-inline.h b/src/cairo-combsort-inline.h
new file mode 100644
index 0000000..d359fae
--- /dev/null
+++ b/src/cairo-combsort-inline.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright © 2008 Chris Wilson
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is Chris Wilson
+ *
+ * Contributor(s):
+ * Chris Wilson <chris at chris-wilson.co.uk>
+ */
+
+/* This fragment implements a comb sort (specifically combsort11) */
+#ifndef _HAVE_CAIRO_COMBSORT_NEWGAP
+#define _HAVE_CAIRO_COMBSORT_NEWGAP
+static inline unsigned int
+_cairo_combsort_newgap (unsigned int gap)
+{
+ gap = 10 * gap / 13;
+ if (gap == 9 || gap == 10)
+ gap = 11;
+ if (gap < 1)
+ gap = 1;
+ return gap;
+}
+#endif
+
+#define CAIRO_COMBSORT_DECLARE(NAME, TYPE, CMP) \
+static void \
+NAME (TYPE *base, unsigned int nmemb) \
+{ \
+ unsigned int gap = nmemb; \
+ unsigned int i, j; \
+ int swapped; \
+ do { \
+ gap = _cairo_combsort_newgap (gap); \
+ swapped = gap > 1; \
+ for (i = 0; i < nmemb-gap ; i++) { \
+ j = i + gap; \
+ if (CMP (base[i], base[j]) > 0 ) { \
+ TYPE tmp; \
+ tmp = base[i]; \
+ base[i] = base[j]; \
+ base[j] = tmp; \
+ swapped = 1; \
+ } \
+ } \
+ } while (swapped); \
+}
+
+#define CAIRO_COMBSORT_DECLARE_WITH_DATA(NAME, TYPE, CMP) \
+static void \
+NAME (TYPE *base, unsigned int nmemb, void *data) \
+{ \
+ unsigned int gap = nmemb; \
+ unsigned int i, j; \
+ int swapped; \
+ do { \
+ gap = _cairo_combsort_newgap (gap); \
+ swapped = gap > 1; \
+ for (i = 0; i < nmemb-gap ; i++) { \
+ j = i + gap; \
+ if (CMP (base[i], base[j], data) > 0 ) { \
+ TYPE tmp; \
+ tmp = base[i]; \
+ base[i] = base[j]; \
+ base[j] = tmp; \
+ swapped = 1; \
+ } \
+ } \
+ } while (swapped); \
+}
diff --git a/src/cairo-combsort-private.h b/src/cairo-combsort-private.h
deleted file mode 100644
index d359fae..0000000
--- a/src/cairo-combsort-private.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright © 2008 Chris Wilson
- *
- * This library is free software; you can redistribute it and/or
- * modify it either under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation
- * (the "LGPL") or, at your option, under the terms of the Mozilla
- * Public License Version 1.1 (the "MPL"). If you do not alter this
- * notice, a recipient may use your version of this file under either
- * the MPL or the LGPL.
- *
- * You should have received a copy of the LGPL along with this library
- * in the file COPYING-LGPL-2.1; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
- * You should have received a copy of the MPL along with this library
- * in the file COPYING-MPL-1.1
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
- * OF ANY KIND, either express or implied. See the LGPL or the MPL for
- * the specific language governing rights and limitations.
- *
- * The Original Code is the cairo graphics library.
- *
- * The Initial Developer of the Original Code is Chris Wilson
- *
- * Contributor(s):
- * Chris Wilson <chris at chris-wilson.co.uk>
- */
-
-/* This fragment implements a comb sort (specifically combsort11) */
-#ifndef _HAVE_CAIRO_COMBSORT_NEWGAP
-#define _HAVE_CAIRO_COMBSORT_NEWGAP
-static inline unsigned int
-_cairo_combsort_newgap (unsigned int gap)
-{
- gap = 10 * gap / 13;
- if (gap == 9 || gap == 10)
- gap = 11;
- if (gap < 1)
- gap = 1;
- return gap;
-}
-#endif
-
-#define CAIRO_COMBSORT_DECLARE(NAME, TYPE, CMP) \
-static void \
-NAME (TYPE *base, unsigned int nmemb) \
-{ \
- unsigned int gap = nmemb; \
- unsigned int i, j; \
- int swapped; \
- do { \
- gap = _cairo_combsort_newgap (gap); \
- swapped = gap > 1; \
- for (i = 0; i < nmemb-gap ; i++) { \
- j = i + gap; \
- if (CMP (base[i], base[j]) > 0 ) { \
- TYPE tmp; \
- tmp = base[i]; \
- base[i] = base[j]; \
- base[j] = tmp; \
- swapped = 1; \
- } \
- } \
- } while (swapped); \
-}
-
-#define CAIRO_COMBSORT_DECLARE_WITH_DATA(NAME, TYPE, CMP) \
-static void \
-NAME (TYPE *base, unsigned int nmemb, void *data) \
-{ \
- unsigned int gap = nmemb; \
- unsigned int i, j; \
- int swapped; \
- do { \
- gap = _cairo_combsort_newgap (gap); \
- swapped = gap > 1; \
- for (i = 0; i < nmemb-gap ; i++) { \
- j = i + gap; \
- if (CMP (base[i], base[j], data) > 0 ) { \
- TYPE tmp; \
- tmp = base[i]; \
- base[i] = base[j]; \
- base[j] = tmp; \
- swapped = 1; \
- } \
- } \
- } while (swapped); \
-}
diff --git a/src/cairo-contour.c b/src/cairo-contour.c
index ac3998b..a8d6927 100644
--- a/src/cairo-contour.c
+++ b/src/cairo-contour.c
@@ -40,7 +40,7 @@
#include "cairo-error-private.h"
#include "cairo-freelist-private.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
#include "cairo-contour-private.h"
void
diff --git a/src/cairo-polygon-intersect.c b/src/cairo-polygon-intersect.c
index 71d56d7..c900c89 100644
--- a/src/cairo-polygon-intersect.c
+++ b/src/cairo-polygon-intersect.c
@@ -40,7 +40,7 @@
#include "cairo-error-private.h"
#include "cairo-freelist-private.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
typedef cairo_point_t cairo_bo_point32_t;
diff --git a/src/cairo-polygon-reduce.c b/src/cairo-polygon-reduce.c
index f18e234..8758070 100644
--- a/src/cairo-polygon-reduce.c
+++ b/src/cairo-polygon-reduce.c
@@ -40,7 +40,7 @@
#include "cairo-error-private.h"
#include "cairo-freelist-private.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
typedef cairo_point_t cairo_bo_point32_t;
diff --git a/src/cairo-recording-surface.c b/src/cairo-recording-surface.c
index 2904c18..11a847c 100644
--- a/src/cairo-recording-surface.c
+++ b/src/cairo-recording-surface.c
@@ -81,7 +81,7 @@
#include "cairo-array-private.h"
#include "cairo-analysis-surface-private.h"
#include "cairo-clip-private.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
#include "cairo-composite-rectangles-private.h"
#include "cairo-default-context-private.h"
#include "cairo-error-private.h"
diff --git a/src/cairo-rectangular-scan-converter.c b/src/cairo-rectangular-scan-converter.c
index b4214c8..e353b34 100644
--- a/src/cairo-rectangular-scan-converter.c
+++ b/src/cairo-rectangular-scan-converter.c
@@ -33,7 +33,7 @@
#include "cairoint.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
#include "cairo-error-private.h"
#include "cairo-freelist-private.h"
#include "cairo-list-private.h"
diff --git a/src/cairo-surface-observer.c b/src/cairo-surface-observer.c
index 6d57bf6..d503993 100644
--- a/src/cairo-surface-observer.c
+++ b/src/cairo-surface-observer.c
@@ -38,7 +38,7 @@
#include "cairo-surface-observer-private.h"
#include "cairo-array-private.h"
-#include "cairo-combsort-private.h"
+#include "cairo-combsort-inline.h"
#include "cairo-composite-rectangles-private.h"
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
commit 0770dda52be9c1bf464a84cb5566ef46d7e9df5a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-clip-privates into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index c717e9f..7c42e79 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -60,6 +60,7 @@ cairo_private = \
cairo-box-inline.h \
cairo-boxes-private.h \
cairo-cache-private.h \
+ cairo-clip-inline.h \
cairo-clip-private.h \
cairo-combsort-private.h \
cairo-compiler-private.h \
diff --git a/src/cairo-clip-boxes.c b/src/cairo-clip-boxes.c
index 569e1d8..bbb4197 100644
--- a/src/cairo-clip-boxes.c
+++ b/src/cairo-clip-boxes.c
@@ -42,6 +42,7 @@
#include "cairoint.h"
#include "cairo-box-inline.h"
+#include "cairo-clip-inline.h"
#include "cairo-clip-private.h"
#include "cairo-error-private.h"
#include "cairo-freed-pool-private.h"
diff --git a/src/cairo-clip-inline.h b/src/cairo-clip-inline.h
new file mode 100644
index 0000000..a9f2326
--- /dev/null
+++ b/src/cairo-clip-inline.h
@@ -0,0 +1,83 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2005 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is Red Hat, Inc.
+ *
+ * Contributor(s):
+ * Kristian Høgsberg <krh at redhat.com>
+ * Chris Wilson <chris at chris-wilson.co.uk>
+ */
+
+#ifndef CAIRO_CLIP_INLINE_H
+#define CAIRO_CLIP_INLINE_H
+
+#include "cairo-clip-private.h"
+
+static inline cairo_bool_t _cairo_clip_is_all_clipped(const cairo_clip_t *clip)
+{
+ return clip == &__cairo_clip_all;
+}
+
+static inline cairo_clip_t *
+_cairo_clip_set_all_clipped (cairo_clip_t *clip)
+{
+ _cairo_clip_destroy (clip);
+ return (cairo_clip_t *) &__cairo_clip_all;
+}
+
+static inline cairo_clip_t *
+_cairo_clip_copy_intersect_rectangle (const cairo_clip_t *clip,
+ const cairo_rectangle_int_t *r)
+{
+ return _cairo_clip_intersect_rectangle (_cairo_clip_copy (clip), r);
+}
+
+static inline cairo_clip_t *
+_cairo_clip_copy_intersect_clip (const cairo_clip_t *clip,
+ const cairo_clip_t *other)
+{
+ return _cairo_clip_intersect_clip (_cairo_clip_copy (clip), other);
+}
+
+static inline void
+_cairo_clip_steal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes)
+{
+ _cairo_boxes_init_for_array (boxes, clip->boxes, clip->num_boxes);
+ clip->boxes = NULL;
+ clip->num_boxes = 0;
+}
+
+static inline void
+_cairo_clip_unsteal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes)
+{
+ clip->boxes = boxes->chunks.base;
+ clip->num_boxes = boxes->num_boxes;
+}
+
+#endif /* CAIRO_CLIP_INLINE_H */
diff --git a/src/cairo-clip-polygon.c b/src/cairo-clip-polygon.c
index d5208d3..f40faef 100644
--- a/src/cairo-clip-polygon.c
+++ b/src/cairo-clip-polygon.c
@@ -36,6 +36,7 @@
*/
#include "cairoint.h"
+#include "cairo-clip-inline.h"
#include "cairo-clip-private.h"
#include "cairo-error-private.h"
#include "cairo-freed-pool-private.h"
diff --git a/src/cairo-clip-private.h b/src/cairo-clip-private.h
index c1c24d8..5fc05a6 100644
--- a/src/cairo-clip-private.h
+++ b/src/cairo-clip-private.h
@@ -84,18 +84,6 @@ _cairo_clip_destroy (cairo_clip_t *clip);
cairo_private extern const cairo_clip_t __cairo_clip_all;
-static inline cairo_bool_t _cairo_clip_is_all_clipped(const cairo_clip_t *clip)
-{
- return clip == &__cairo_clip_all;
-}
-
-static inline cairo_clip_t *
-_cairo_clip_set_all_clipped (cairo_clip_t *clip)
-{
- _cairo_clip_destroy (clip);
- return (cairo_clip_t *) &__cairo_clip_all;
-}
-
cairo_private cairo_clip_t *
_cairo_clip_copy (const cairo_clip_t *clip);
@@ -122,25 +110,10 @@ cairo_private cairo_clip_t *
_cairo_clip_intersect_rectangle (cairo_clip_t *clip,
const cairo_rectangle_int_t *rectangle);
-static inline cairo_clip_t *
-_cairo_clip_copy_intersect_rectangle (const cairo_clip_t *clip,
- const cairo_rectangle_int_t *r)
-{
- return _cairo_clip_intersect_rectangle (_cairo_clip_copy (clip), r);
-}
-
cairo_private cairo_clip_t *
_cairo_clip_intersect_clip (cairo_clip_t *clip,
const cairo_clip_t *other);
-static inline cairo_clip_t *
-_cairo_clip_copy_intersect_clip (const cairo_clip_t *clip,
- const cairo_clip_t *other)
-{
- return _cairo_clip_intersect_clip (_cairo_clip_copy (clip), other);
-}
-
-
cairo_private cairo_clip_t *
_cairo_clip_intersect_box (cairo_clip_t *clip,
const cairo_box_t *box);
@@ -178,21 +151,6 @@ _cairo_clip_combine_with_surface (const cairo_clip_t *clip,
cairo_surface_t *dst,
int dst_x, int dst_y);
-static inline void
-_cairo_clip_steal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes)
-{
- _cairo_boxes_init_for_array (boxes, clip->boxes, clip->num_boxes);
- clip->boxes = NULL;
- clip->num_boxes = 0;
-}
-
-static inline void
-_cairo_clip_unsteal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes)
-{
- clip->boxes = boxes->chunks.base;
- clip->num_boxes = boxes->num_boxes;
-}
-
cairo_private cairo_clip_t *
_cairo_clip_from_boxes (const cairo_boxes_t *boxes);
diff --git a/src/cairo-clip.c b/src/cairo-clip.c
index 6bf1f39..bd70c06 100644
--- a/src/cairo-clip.c
+++ b/src/cairo-clip.c
@@ -40,6 +40,7 @@
*/
#include "cairoint.h"
+#include "cairo-clip-inline.h"
#include "cairo-clip-private.h"
#include "cairo-error-private.h"
#include "cairo-freed-pool-private.h"
diff --git a/src/cairo-composite-rectangles.c b/src/cairo-composite-rectangles.c
index 8c5cd5a..c2de02a 100644
--- a/src/cairo-composite-rectangles.c
+++ b/src/cairo-composite-rectangles.c
@@ -35,6 +35,7 @@
#include "cairoint.h"
+#include "cairo-clip-inline.h"
#include "cairo-error-private.h"
#include "cairo-composite-rectangles-private.h"
#include "cairo-pattern-private.h"
diff --git a/src/cairo-default-context.c b/src/cairo-default-context.c
index b58a766..dc8c359 100644
--- a/src/cairo-default-context.c
+++ b/src/cairo-default-context.c
@@ -43,6 +43,7 @@
#include "cairo-private.h"
#include "cairo-arc-private.h"
#include "cairo-backend-private.h"
+#include "cairo-clip-inline.h"
#include "cairo-default-context-private.h"
#include "cairo-error-private.h"
#include "cairo-freed-pool-private.h"
diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c
index d851f34..889bc1a 100644
--- a/src/cairo-gstate.c
+++ b/src/cairo-gstate.c
@@ -37,6 +37,7 @@
#include "cairoint.h"
+#include "cairo-clip-inline.h"
#include "cairo-clip-private.h"
#include "cairo-error-private.h"
#include "cairo-gstate-private.h"
diff --git a/src/cairo-mask-compositor.c b/src/cairo-mask-compositor.c
index 7bee372..8dbd359 100644
--- a/src/cairo-mask-compositor.c
+++ b/src/cairo-mask-compositor.c
@@ -45,6 +45,7 @@
#include "cairoint.h"
+#include "cairo-clip-inline.h"
#include "cairo-compositor-private.h"
#include "cairo-image-surface-private.h"
#include "cairo-pattern-private.h"
diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c
index 70fc1c2..9474b47 100644
--- a/src/cairo-spans-compositor.c
+++ b/src/cairo-spans-compositor.c
@@ -42,6 +42,7 @@
#include "cairoint.h"
#include "cairo-compositor-private.h"
+#include "cairo-clip-inline.h"
#include "cairo-clip-private.h"
#include "cairo-image-surface-private.h"
#include "cairo-paginated-private.h"
diff --git a/src/cairo-surface-clipper.c b/src/cairo-surface-clipper.c
index 0d2890c..5309362 100644
--- a/src/cairo-surface-clipper.c
+++ b/src/cairo-surface-clipper.c
@@ -35,6 +35,7 @@
#include "cairoint.h"
+#include "cairo-clip-inline.h"
#include "cairo-surface-clipper-private.h"
/* A collection of routines to facilitate vector surface clipping */
diff --git a/src/cairo-surface-offset.c b/src/cairo-surface-offset.c
index d2cc030..98f57f2 100644
--- a/src/cairo-surface-offset.c
+++ b/src/cairo-surface-offset.c
@@ -37,6 +37,7 @@
#include "cairoint.h"
+#include "cairo-clip-inline.h"
#include "cairo-error-private.h"
#include "cairo-pattern-private.h"
#include "cairo-surface-offset-private.h"
diff --git a/src/cairo-surface-subsurface.c b/src/cairo-surface-subsurface.c
index 071dd75..97475f2 100644
--- a/src/cairo-surface-subsurface.c
+++ b/src/cairo-surface-subsurface.c
@@ -35,6 +35,7 @@
#include "cairoint.h"
+#include "cairo-clip-inline.h"
#include "cairo-error-private.h"
#include "cairo-image-surface-private.h"
#include "cairo-recording-surface-private.h"
diff --git a/src/cairo-surface-wrapper.c b/src/cairo-surface-wrapper.c
index fe9c42a..578e8e2 100644
--- a/src/cairo-surface-wrapper.c
+++ b/src/cairo-surface-wrapper.c
@@ -37,6 +37,7 @@
#include "cairoint.h"
+#include "cairo-clip-inline.h"
#include "cairo-error-private.h"
#include "cairo-pattern-private.h"
#include "cairo-surface-wrapper-private.h"
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index 4c77de7..3c31d8c 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -39,6 +39,7 @@
#include "cairoint.h"
#include "cairo-array-private.h"
+#include "cairo-clip-inline.h"
#include "cairo-clip-private.h"
#include "cairo-damage-private.h"
#include "cairo-device-private.h"
diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c
index f70ac1c..5e11380 100644
--- a/src/cairo-traps-compositor.c
+++ b/src/cairo-traps-compositor.c
@@ -43,6 +43,7 @@
#include "cairo-box-inline.h"
#include "cairo-boxes-private.h"
+#include "cairo-clip-inline.h"
#include "cairo-clip-private.h"
#include "cairo-composite-rectangles-private.h"
#include "cairo-compositor-private.h"
diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c
index f1f5fbe..74c6c84 100644
--- a/src/cairo-xcb-surface-render.c
+++ b/src/cairo-xcb-surface-render.c
@@ -34,6 +34,7 @@
#include "cairo-xcb-private.h"
#include "cairo-boxes-private.h"
+#include "cairo-clip-inline.h"
#include "cairo-clip-private.h"
#include "cairo-composite-rectangles-private.h"
#include "cairo-image-surface-private.h"
diff --git a/src/cairo-xlib-core-compositor.c b/src/cairo-xlib-core-compositor.c
index dfb4506..aaa71d5 100644
--- a/src/cairo-xlib-core-compositor.c
+++ b/src/cairo-xlib-core-compositor.c
@@ -52,6 +52,7 @@
#include "cairo-xlib-surface-private.h"
#include "cairo-boxes-private.h"
+#include "cairo-clip-inline.h"
#include "cairo-compositor-private.h"
#include "cairo-image-surface-private.h"
#include "cairo-pattern-private.h"
diff --git a/src/win32/cairo-win32-gdi-compositor.c b/src/win32/cairo-win32-gdi-compositor.c
index 2bdac66..001f3b7 100644
--- a/src/win32/cairo-win32-gdi-compositor.c
+++ b/src/win32/cairo-win32-gdi-compositor.c
@@ -47,6 +47,7 @@
#include "cairo-win32-private.h"
#include "cairo-boxes-private.h"
+#include "cairo-clip-inline.h"
#include "cairo-compositor-private.h"
#include "cairo-image-surface-private.h"
#include "cairo-pattern-private.h"
commit e9c9e28cd19df8a5875f62fc74087500182399f0
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 11:59:54 2012 +0100
Split cairo-box-privates into struct+inlines
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/Makefile.sources b/src/Makefile.sources
index c015507..c717e9f 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -57,7 +57,7 @@ cairo_private = \
cairo-array-private.h \
cairo-atomic-private.h \
cairo-backend-private.h \
- cairo-box-private.h \
+ cairo-box-inline.h \
cairo-boxes-private.h \
cairo-cache-private.h \
cairo-clip-private.h \
diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c
index 8878f62..e1d7d58 100644
--- a/src/cairo-analysis-surface.c
+++ b/src/cairo-analysis-surface.c
@@ -37,7 +37,7 @@
#include "cairoint.h"
#include "cairo-analysis-surface-private.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-default-context-private.h"
#include "cairo-error-private.h"
#include "cairo-paginated-private.h"
diff --git a/src/cairo-box-inline.h b/src/cairo-box-inline.h
new file mode 100644
index 0000000..d6b9941
--- /dev/null
+++ b/src/cairo-box-inline.h
@@ -0,0 +1,121 @@
+/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2010 Andrea Canciani
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * Contributor(s):
+ * Andrea Canciani <ranma42 at gmail.com>
+ */
+
+#ifndef CAIRO_BOX_H
+#define CAIRO_BOX_H
+
+#include "cairo-types-private.h"
+#include "cairo-compiler-private.h"
+#include "cairo-fixed-private.h"
+
+static inline void
+_cairo_box_set (cairo_box_t *box,
+ const cairo_point_t *p1,
+ const cairo_point_t *p2)
+{
+ box->p1 = *p1;
+ box->p2 = *p2;
+}
+
+static inline void
+_cairo_box_from_integers (cairo_box_t *box, int x, int y, int w, int h)
+{
+ box->p1.x = _cairo_fixed_from_int (x);
+ box->p1.y = _cairo_fixed_from_int (y);
+ box->p2.x = _cairo_fixed_from_int (x + w);
+ box->p2.y = _cairo_fixed_from_int (y + h);
+}
+
+/* assumes box->p1 is top-left, p2 bottom-right */
+static inline void
+_cairo_box_add_point (cairo_box_t *box,
+ const cairo_point_t *point)
+{
+ if (point->x < box->p1.x)
+ box->p1.x = point->x;
+ else if (point->x > box->p2.x)
+ box->p2.x = point->x;
+
+ if (point->y < box->p1.y)
+ box->p1.y = point->y;
+ else if (point->y > box->p2.y)
+ box->p2.y = point->y;
+}
+
+static inline void
+_cairo_box_add_box (cairo_box_t *box,
+ const cairo_box_t *add)
+{
+ if (add->p1.x < box->p1.x)
+ box->p1.x = add->p1.x;
+ if (add->p2.x > box->p2.x)
+ box->p2.x = add->p2.x;
+
+ if (add->p1.y < box->p1.y)
+ box->p1.y = add->p1.y;
+ if (add->p2.y > box->p2.y)
+ box->p2.y = add->p2.y;
+}
+
+/* assumes box->p1 is top-left, p2 bottom-right */
+static inline cairo_bool_t
+_cairo_box_contains_point (const cairo_box_t *box,
+ const cairo_point_t *point)
+{
+ return box->p1.x <= point->x && point->x <= box->p2.x &&
+ box->p1.y <= point->y && point->y <= box->p2.y;
+}
+
+static inline cairo_bool_t
+_cairo_box_is_pixel_aligned (const cairo_box_t *box)
+{
+#if CAIRO_FIXED_FRAC_BITS <= 8 && 0
+ return ((box->p1.x & CAIRO_FIXED_FRAC_MASK) << 24 |
+ (box->p1.y & CAIRO_FIXED_FRAC_MASK) << 16 |
+ (box->p2.x & CAIRO_FIXED_FRAC_MASK) << 8 |
+ (box->p2.y & CAIRO_FIXED_FRAC_MASK) << 0) == 0;
+#else /* GCC on i7 prefers this variant (bizarrely according to the profiler) */
+ cairo_fixed_t f;
+
+ f = 0;
+ f |= box->p1.x & CAIRO_FIXED_FRAC_MASK;
+ f |= box->p1.y & CAIRO_FIXED_FRAC_MASK;
+ f |= box->p2.x & CAIRO_FIXED_FRAC_MASK;
+ f |= box->p2.y & CAIRO_FIXED_FRAC_MASK;
+
+ return f == 0;
+#endif
+}
+
+#endif /* CAIRO_BOX_H */
diff --git a/src/cairo-box-private.h b/src/cairo-box-private.h
deleted file mode 100644
index d6b9941..0000000
--- a/src/cairo-box-private.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */
-/* cairo - a vector graphics library with display and print output
- *
- * Copyright © 2010 Andrea Canciani
- *
- * This library is free software; you can redistribute it and/or
- * modify it either under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation
- * (the "LGPL") or, at your option, under the terms of the Mozilla
- * Public License Version 1.1 (the "MPL"). If you do not alter this
- * notice, a recipient may use your version of this file under either
- * the MPL or the LGPL.
- *
- * You should have received a copy of the LGPL along with this library
- * in the file COPYING-LGPL-2.1; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
- * You should have received a copy of the MPL along with this library
- * in the file COPYING-MPL-1.1
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
- * OF ANY KIND, either express or implied. See the LGPL or the MPL for
- * the specific language governing rights and limitations.
- *
- * The Original Code is the cairo graphics library.
- *
- * Contributor(s):
- * Andrea Canciani <ranma42 at gmail.com>
- */
-
-#ifndef CAIRO_BOX_H
-#define CAIRO_BOX_H
-
-#include "cairo-types-private.h"
-#include "cairo-compiler-private.h"
-#include "cairo-fixed-private.h"
-
-static inline void
-_cairo_box_set (cairo_box_t *box,
- const cairo_point_t *p1,
- const cairo_point_t *p2)
-{
- box->p1 = *p1;
- box->p2 = *p2;
-}
-
-static inline void
-_cairo_box_from_integers (cairo_box_t *box, int x, int y, int w, int h)
-{
- box->p1.x = _cairo_fixed_from_int (x);
- box->p1.y = _cairo_fixed_from_int (y);
- box->p2.x = _cairo_fixed_from_int (x + w);
- box->p2.y = _cairo_fixed_from_int (y + h);
-}
-
-/* assumes box->p1 is top-left, p2 bottom-right */
-static inline void
-_cairo_box_add_point (cairo_box_t *box,
- const cairo_point_t *point)
-{
- if (point->x < box->p1.x)
- box->p1.x = point->x;
- else if (point->x > box->p2.x)
- box->p2.x = point->x;
-
- if (point->y < box->p1.y)
- box->p1.y = point->y;
- else if (point->y > box->p2.y)
- box->p2.y = point->y;
-}
-
-static inline void
-_cairo_box_add_box (cairo_box_t *box,
- const cairo_box_t *add)
-{
- if (add->p1.x < box->p1.x)
- box->p1.x = add->p1.x;
- if (add->p2.x > box->p2.x)
- box->p2.x = add->p2.x;
-
- if (add->p1.y < box->p1.y)
- box->p1.y = add->p1.y;
- if (add->p2.y > box->p2.y)
- box->p2.y = add->p2.y;
-}
-
-/* assumes box->p1 is top-left, p2 bottom-right */
-static inline cairo_bool_t
-_cairo_box_contains_point (const cairo_box_t *box,
- const cairo_point_t *point)
-{
- return box->p1.x <= point->x && point->x <= box->p2.x &&
- box->p1.y <= point->y && point->y <= box->p2.y;
-}
-
-static inline cairo_bool_t
-_cairo_box_is_pixel_aligned (const cairo_box_t *box)
-{
-#if CAIRO_FIXED_FRAC_BITS <= 8 && 0
- return ((box->p1.x & CAIRO_FIXED_FRAC_MASK) << 24 |
- (box->p1.y & CAIRO_FIXED_FRAC_MASK) << 16 |
- (box->p2.x & CAIRO_FIXED_FRAC_MASK) << 8 |
- (box->p2.y & CAIRO_FIXED_FRAC_MASK) << 0) == 0;
-#else /* GCC on i7 prefers this variant (bizarrely according to the profiler) */
- cairo_fixed_t f;
-
- f = 0;
- f |= box->p1.x & CAIRO_FIXED_FRAC_MASK;
- f |= box->p1.y & CAIRO_FIXED_FRAC_MASK;
- f |= box->p2.x & CAIRO_FIXED_FRAC_MASK;
- f |= box->p2.y & CAIRO_FIXED_FRAC_MASK;
-
- return f == 0;
-#endif
-}
-
-#endif /* CAIRO_BOX_H */
diff --git a/src/cairo-boxes.c b/src/cairo-boxes.c
index a872f0d..63b68dd 100644
--- a/src/cairo-boxes.c
+++ b/src/cairo-boxes.c
@@ -33,7 +33,7 @@
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-boxes-private.h"
#include "cairo-error-private.h"
diff --git a/src/cairo-clip-boxes.c b/src/cairo-clip-boxes.c
index 7372c73..569e1d8 100644
--- a/src/cairo-clip-boxes.c
+++ b/src/cairo-clip-boxes.c
@@ -41,7 +41,7 @@
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-clip-private.h"
#include "cairo-error-private.h"
#include "cairo-freed-pool-private.h"
diff --git a/src/cairo-cogl-surface.c b/src/cairo-cogl-surface.c
index 155dcbc..7e74bf8 100644
--- a/src/cairo-cogl-surface.c
+++ b/src/cairo-cogl-surface.c
@@ -45,7 +45,7 @@
#include "cairo-traps-private.h"
#include "cairo-cogl-context-private.h"
#include "cairo-cogl-utils-private.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-surface-subsurface-private.h"
#include "cairo-surface-fallback-private.h"
#include "cairo-surface-offset-private.h"
diff --git a/src/cairo-path-bounds.c b/src/cairo-path-bounds.c
index 087a7d0..9c72224 100644
--- a/src/cairo-path-bounds.c
+++ b/src/cairo-path-bounds.c
@@ -36,7 +36,7 @@
*/
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-error-private.h"
#include "cairo-path-fixed-private.h"
diff --git a/src/cairo-path-fixed.c b/src/cairo-path-fixed.c
index 652e615..e86a489 100644
--- a/src/cairo-path-fixed.c
+++ b/src/cairo-path-fixed.c
@@ -38,7 +38,7 @@
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-error-private.h"
#include "cairo-path-fixed-private.h"
#include "cairo-slope-private.h"
diff --git a/src/cairo-path-stroke-boxes.c b/src/cairo-path-stroke-boxes.c
index aca04c2..1543a64 100644
--- a/src/cairo-path-stroke-boxes.c
+++ b/src/cairo-path-stroke-boxes.c
@@ -39,7 +39,7 @@
#define _BSD_SOURCE /* for hypot() */
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-boxes-private.h"
#include "cairo-error-private.h"
#include "cairo-path-fixed-private.h"
diff --git a/src/cairo-path-stroke-polygon.c b/src/cairo-path-stroke-polygon.c
index 7978af0..3ef0955 100644
--- a/src/cairo-path-stroke-polygon.c
+++ b/src/cairo-path-stroke-polygon.c
@@ -40,7 +40,7 @@
#define _BSD_SOURCE /* for hypot() */
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-boxes-private.h"
#include "cairo-contour-private.h"
#include "cairo-error-private.h"
diff --git a/src/cairo-path-stroke-tristrip.c b/src/cairo-path-stroke-tristrip.c
index 86f451c..6ce4131 100644
--- a/src/cairo-path-stroke-tristrip.c
+++ b/src/cairo-path-stroke-tristrip.c
@@ -40,7 +40,7 @@
#define _BSD_SOURCE /* for hypot() */
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-boxes-private.h"
#include "cairo-error-private.h"
#include "cairo-path-fixed-private.h"
diff --git a/src/cairo-path-stroke.c b/src/cairo-path-stroke.c
index d93be8f..bae66dc 100644
--- a/src/cairo-path-stroke.c
+++ b/src/cairo-path-stroke.c
@@ -39,7 +39,7 @@
#define _BSD_SOURCE /* for hypot() */
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-boxes-private.h"
#include "cairo-error-private.h"
#include "cairo-path-fixed-private.h"
diff --git a/src/cairo-rectangle.c b/src/cairo-rectangle.c
index aafec90..9613065 100644
--- a/src/cairo-rectangle.c
+++ b/src/cairo-rectangle.c
@@ -39,7 +39,7 @@
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
const cairo_rectangle_int_t _cairo_empty_rectangle = { 0, 0, 0, 0 };
const cairo_rectangle_int_t _cairo_unbounded_rectangle = {
diff --git a/src/cairo-spline.c b/src/cairo-spline.c
index 34ad585..44634fa 100644
--- a/src/cairo-spline.c
+++ b/src/cairo-spline.c
@@ -36,7 +36,7 @@
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-slope-private.h"
cairo_bool_t
diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c
index c49e208..f70ac1c 100644
--- a/src/cairo-traps-compositor.c
+++ b/src/cairo-traps-compositor.c
@@ -41,7 +41,7 @@
#include "cairoint.h"
-#include "cairo-box-private.h"
+#include "cairo-box-inline.h"
#include "cairo-boxes-private.h"
#include "cairo-clip-private.h"
#include "cairo-composite-rectangles-private.h"
commit f830268b952ecd06bf3adf7bf62dc4b5c4139e5c
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Apr 19 12:04:01 2012 +0100
boxes: Remove unused inline function
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/cairo-boxes-private.h b/src/cairo-boxes-private.h
index 910b2c5..d1f9dfc 100644
--- a/src/cairo-boxes-private.h
+++ b/src/cairo-boxes-private.h
@@ -95,14 +95,6 @@ _cairo_boxes_to_array (const cairo_boxes_t *boxes,
int *num_boxes,
cairo_bool_t force_allocation);
-static inline void
-_cairo_boxes_free_array (const cairo_boxes_t *boxes,
- cairo_box_t *box)
-{
- if (box != boxes->chunks.base)
- free(box);
-}
-
cairo_private cairo_status_t
_cairo_boxes_intersect (const cairo_boxes_t *a,
const cairo_boxes_t *b,
More information about the cairo-commit
mailing list