cssprovider: Don't add empty rulesets
authorBenjamin Otte <otte@redhat.com>
Sat, 23 Nov 2019 18:01:28 +0000 (19:01 +0100)
committerBenjamin Otte <otte@redhat.com>
Sat, 23 Nov 2019 18:02:36 +0000 (19:02 +0100)
This change was lost during the parser changes, but the newly added test
exposes it.

And fix the expected error, the syntax has changed.

gtk/gtkcssprovider.c
testsuite/css/parser/border-crash-3.24.errors

index 1aae733d2709f6bd91f79517abc144721497e76f..5c4c6e9e2efbb4d66037541e9697e6bd8b633ff5 100644 (file)
@@ -631,6 +631,12 @@ css_provider_commit (GtkCssProvider *css_provider,
   GtkCssProviderPrivate *priv = gtk_css_provider_get_instance_private (css_provider);
   GSList *l;
 
+  if (ruleset->styles == NULL)
+    {
+      g_slist_free_full (selectors, (GDestroyNotify) _gtk_css_selector_free);
+      return;
+    }
+
   for (l = selectors; l; l = l->next)
     {
       GtkCssRuleset new;
index c49f1d071a90e0197bd8cebc4df0ecd8bb42f35f..f7b815aaf58f4de63fd1bb43162e0afa2b612ac4 100644 (file)
@@ -1 +1 @@
-border-crash-3.24.css:3: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
+border-crash-3.24.css:3:3-10: error: GTK_CSS_PARSER_ERROR_SYNTAX