[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