[librsvg] bgo#745177 - Revert "RsvgPathBuilder: don't add a terminating moveto after closepath"
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] bgo#745177 - Revert "RsvgPathBuilder: don't add a terminating moveto after closepath"
- Date: Thu, 26 Feb 2015 22:04:41 +0000 (UTC)
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]