diff options
author | Federico Mena Quintero <federico@gnome.org> | 2015-02-26 15:38:38 -0600 |
---|---|---|
committer | Federico Mena Quintero <federico@gnome.org> | 2015-02-26 15:59:11 -0600 |
commit | 310500cf1739f8e827331d822bd9f9f08f6fc2b0 (patch) | |
tree | 109ca6f1aa257d8f5619bf51395c5208bbae94eb | |
parent | 6fd7493ef2ba7ed9d8e76a3ae5b064c34825422f (diff) | |
download | librsvg-310500cf1739f8e827331d822bd9f9f08f6fc2b0.tar.gz |
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
-rw-r--r-- | rsvg-path.c | 9 | ||||
-rw-r--r-- | rsvg-path.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/rsvg-path.c b/rsvg-path.c index 5436d0d2..56a5b962 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 11112b58..4d151f08 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 |