summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2016-12-21 11:48:56 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2016-12-22 08:40:32 +0800
commit23edff1606165357e8efcab82b00e55b43ca7155 (patch)
treeb15d032403eb401aee36676dd693feb333e8f11c
parente64947662a8f8c9e8f3e2b5565295d8f8ff3746b (diff)
downloadgtk+-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.c5
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);