[cairo-commit] 2 commits - src/cairo-analysis-surface.c src/cairo-ps-surface.c

Adrian Johnson ajohnson at kemper.freedesktop.org
Wed Jul 20 02:47:44 PDT 2011


 src/cairo-analysis-surface.c |    6 ++++--
 src/cairo-ps-surface.c       |    6 +++++-
 2 files changed, 9 insertions(+), 3 deletions(-)

New commits:
commit 3d1ee0e22dc0483189dc427b530418cbc3212810
Author: Adrian Johnson <ajohnson at redneon.com>
Date:   Wed Jul 20 19:08:38 2011 +0930

    analysis: CAIRO_INT_STATUS_NOTHING_TO_DO should not cause fallback

diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c
index aa0977e..3cb4311 100644
--- a/src/cairo-analysis-surface.c
+++ b/src/cairo-analysis-surface.c
@@ -145,7 +145,8 @@ _add_operation (cairo_analysis_surface_t *surface,
 	 * to not allow unsupported operations to be replayed to the
 	 * backend during CAIRO_PAGINATED_MODE_RENDER */
 	if (backend_status == CAIRO_INT_STATUS_SUCCESS ||
-	    backend_status == CAIRO_INT_STATUS_FLATTEN_TRANSPARENCY)
+	    backend_status == CAIRO_INT_STATUS_FLATTEN_TRANSPARENCY ||
+	    backend_status == CAIRO_INT_STATUS_NOTHING_TO_DO)
 	{
 	    return CAIRO_INT_STATUS_SUCCESS;
 	}
@@ -173,7 +174,8 @@ _add_operation (cairo_analysis_surface_t *surface,
 		 * replayed to the backend during
 		 * CAIRO_PAGINATED_MODE_RENDER */
 		if (backend_status == CAIRO_INT_STATUS_SUCCESS ||
-		    backend_status == CAIRO_INT_STATUS_FLATTEN_TRANSPARENCY)
+		    backend_status == CAIRO_INT_STATUS_FLATTEN_TRANSPARENCY ||
+		    backend_status == CAIRO_INT_STATUS_NOTHING_TO_DO)
 		{
 		    return CAIRO_INT_STATUS_SUCCESS;
 		}
commit 12b27778e230eb078c19d695ad11db713963aa25
Author: Adrian Johnson <ajohnson at redneon.com>
Date:   Wed Jul 20 19:05:33 2011 +0930

    ps: Don't return CAIRO_INT_STATUS_NOTHING_TO_DO for empty glyphs

diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c
index 3d939c9..3a54a90 100644
--- a/src/cairo-ps-surface.c
+++ b/src/cairo-ps-surface.c
@@ -3782,8 +3782,12 @@ _cairo_ps_surface_show_glyphs (void		     *abstract_surface,
 							  glyphs, num_glyphs,
 							  clip,
 							  &overlap);
-    if (unlikely (status))
+    if (unlikely (status)) {
+	if (status == CAIRO_INT_STATUS_NOTHING_TO_DO)
+	    return CAIRO_INT_STATUS_SUCCESS;
+
 	return status;
+    }
 
     if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE)
 	return _cairo_ps_surface_analyze_operation (surface, op, source, &extents.bounded);


More information about the cairo-commit mailing list