diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2016-12-21 11:48:56 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2016-12-22 08:40:32 +0800 |
commit | 23edff1606165357e8efcab82b00e55b43ca7155 (patch) | |
tree | b15d032403eb401aee36676dd693feb333e8f11c | |
parent | e64947662a8f8c9e8f3e2b5565295d8f8ff3746b (diff) | |
download | gtk+-23edff1606165357e8efcab82b00e55b43ca7155.tar.gz |
gtkcssimagelinear.c: Avoid VLAs
VLAs are not supported by Visual Studio and possibly other compilers that
are supported by GTK+-3.90+, and probably never will be, although it is a
C99 specification, and it became optional for C11. It is also not a part
of the newer compiler requirements that are listed out for GTK+-3.90.x.
There exist concerns about the implementation of VLAs in compilers that
support them as well, so change it to a g_newa() approach.
https://bugzilla.gnome.org/show_bug.cgi?id=773299
-rw-r--r-- | gtk/gtkcssimagelinear.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gtk/gtkcssimagelinear.c b/gtk/gtkcssimagelinear.c index 0e415d6457..17318cabb9 100644 --- a/gtk/gtkcssimagelinear.c +++ b/gtk/gtkcssimagelinear.c @@ -134,7 +134,7 @@ gtk_css_image_linear_snapshot (GtkCssImage *image, double height) { GtkCssImageLinear *linear = GTK_CSS_IMAGE_LINEAR (image); - GskColorStop stops[linear->stops->len]; + GskColorStop *stops; GskRenderNode *node; double off_x, off_y; /* snapshot offset */ double angle; /* actual angle of the gradiant line in degrees */ @@ -183,6 +183,8 @@ gtk_css_image_linear_snapshot (GtkCssImage *image, offset = start; last = -1; + stops = g_newa (GskColorStop, linear->stops->len); + for (i = 0; i < linear->stops->len; i++) { GtkCssImageLinearColorStop *stop; @@ -238,6 +240,7 @@ gtk_css_image_linear_snapshot (GtkCssImage *image, stops, linear->stops->len); } + name = g_strdup_printf ("%sLinearGradient<%ustops>", linear->repeating ? "Repeating" : "", linear->stops->len); gsk_render_node_set_name (node, name); g_free (name); |