[PATCH 3/4] script surface: Avoid compiler warnings

Simon Richter <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
This is not strictly necessary, as the pointer <-> integer casts here are
never performed on actual valid pointers, but this change avoids a bunch of
warnings that look dangerous.
---
 src/cairo-script-surface.c | 28 +++++++++++-----------------
 1 file changed, 11 insertions(+), 17 deletions(-)

diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c
index ea0117d..d5f890e 100644
--- a/src/cairo-script-surface.c
+++ b/src/cairo-script-surface.c
@@ -3021,7 +3021,7 @@ _emit_scaled_glyph_vector (cairo_script_surface_t *surface,
     cairo_script_context_t *ctx = to_context (surface);
     cairo_script_implicit_context_t old_cr;
     cairo_status_t status;
-    unsigned long index;
+    intptr_t index;
 
     index = ++font_private->subset_glyph_index;
     scaled_glyph->dev_private_key = ctx;
@@ -3069,7 +3069,7 @@ _emit_scaled_glyph_bitmap (cairo_script_surface_t *surface,
 {
     cairo_script_context_t *ctx = to_context (surface);
     cairo_status_t status;
-    unsigned long index;
+    intptr_t index;
 
     index = ++font_private->subset_glyph_index;
     scaled_glyph->dev_private_key = ctx;
@@ -3373,7 +3373,7 @@ _cairo_script_surface_show_text_glyphs (void			    *abstract_surface,
 		goto BAIL;
 	    }
 
-	    if ((long unsigned) scaled_glyph->dev_private > 256)
+	    if ((intptr_t) scaled_glyph->dev_private > 256)
 		break;
 	}
     }
@@ -3438,23 +3438,17 @@ _cairo_script_surface_show_text_glyphs (void			    *abstract_surface,
 		}
 	    }
 	}
-	if (base85_stream != NULL) {
-	    uint8_t c;
+	uint8_t c;
 
-	    if (font_private->has_sfnt)
-		c = glyphs[n].index;
-	    else
-		c = (uint8_t) (long unsigned) scaled_glyph->dev_private;
+	if (font_private->has_sfnt)
+	    c = glyphs[n].index;
+	else
+	    c = (uint8_t) (((intptr_t) scaled_glyph->dev_private) & 0xff);
 
+	if (base85_stream != NULL)
 	    _cairo_output_stream_write (base85_stream, &c, 1);
-	} else {
-	    if (font_private->has_sfnt)
-		_cairo_output_stream_printf (ctx->stream, " %lu",
-					     glyphs[n].index);
-	    else
-		_cairo_output_stream_printf (ctx->stream, " %lu",
-					     (long unsigned) scaled_glyph->dev_private);
-	}
+	else
+	    _cairo_output_stream_printf (ctx->stream, " %u", c);
 
         dx = scaled_glyph->metrics.x_advance;
         dy = scaled_glyph->metrics.y_advance;
-- 
2.1.4

-- 
cairo mailing list
[email protected]
https://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.