[librsvg] bgo#745177 - Revert "RsvgPathBuilder: don't add a terminating moveto after closepath"



commit 310500cf1739f8e827331d822bd9f9f08f6fc2b0
Author: Federico Mena Quintero <federico gnome org>
Date:   Thu Feb 26 15:38:38 2015 -0600

    bgo#745177 - Revert "RsvgPathBuilder: don't add a terminating moveto after closepath"
    
    This reverts commit 0c98142e31cdc91963860f99ec933e52f3cc63c6.
    
    This was causing bug https://bugzilla.gnome.org/show_bug.cgi?id=745177

 rsvg-path.c |    9 +++++++++
 rsvg-path.h |    1 +
 2 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/rsvg-path.c b/rsvg-path.c
index 5436d0d..56a5b96 100644
--- a/rsvg-path.c
+++ b/rsvg-path.c
@@ -77,6 +77,7 @@ rsvg_path_builder_init (RsvgPathBuilder *builder,
                         int n_elements)
 {
   builder->path_data = g_array_sized_new (FALSE, FALSE, sizeof (cairo_path_data_t), n_elements);
+  builder->last_move_to_index = -1;
 }
 
 void
@@ -91,6 +92,7 @@ rsvg_path_builder_move_to (RsvgPathBuilder *builder,
   data.header.type = CAIRO_PATH_MOVE_TO;
   data.header.length = 2;
   rsvg_path_builder_add_element (builder, &data);
+  builder->last_move_to_index = builder->path_data->len - 1;
 
   data.point.x = x;
   data.point.y = y;
@@ -151,6 +153,13 @@ rsvg_path_builder_close_path (RsvgPathBuilder *builder)
   data.header.type = CAIRO_PATH_CLOSE_PATH;
   data.header.length = 1;
   rsvg_path_builder_add_element (builder, &data);
+
+  /* Add a 'move-to' element */
+  if (builder->last_move_to_index >= 0) {
+    cairo_path_data_t *moveto = &g_array_index (builder->path_data, cairo_path_data_t, 
builder->last_move_to_index);
+
+    rsvg_path_builder_move_to (builder, moveto[1].point.x, moveto[1].point.y);
+  }
 }
 
 cairo_path_t *
diff --git a/rsvg-path.h b/rsvg-path.h
index 11112b5..4d151f0 100644
--- a/rsvg-path.h
+++ b/rsvg-path.h
@@ -34,6 +34,7 @@ G_BEGIN_DECLS
 
 typedef struct {
     GArray *path_data;
+    int     last_move_to_index;
 } RsvgPathBuilder;
 
 G_GNUC_INTERNAL


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]