From f937d0275a7f17ccf9545177884a06a04d5428df Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 11 Apr 2011 19:57:42 +0200 Subject: [PATCH] cssprovider: More error handling into load_internal() Now the parsing functions starting at parse_stylesheet() don't have to care about errors anymore. --- gtk/gtkcssprovider.c | 59 ++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index 69edd1d52e..9616c7ae05 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -2591,21 +2591,10 @@ gtk_css_provider_propagate_error (GtkCssProvider *provider, g_prefix_error (propagate_to, "%s:%u:%u: ", path ? path : "", line, position); } -static gboolean +static void parse_stylesheet (GtkCssProvider *css_provider, - GScanner *scanner, - GError **error) + GScanner *scanner) { - gulong error_handler; - - if (error) - error_handler = g_signal_connect (css_provider, - "parsing-error", - G_CALLBACK (gtk_css_provider_propagate_error), - error); - else - error_handler = 0; /* silence gcc */ - g_scanner_get_next_token (scanner); while (!g_scanner_eof (scanner)) @@ -2627,6 +2616,31 @@ parse_stylesheet (GtkCssProvider *css_provider, gtk_css_scanner_reset (scanner); } +} + +static gboolean +gtk_css_provider_load_internal (GtkCssProvider *css_provider, + GFile *file, + const char *data, + gsize length, + GError **error) +{ + GScanner *scanner; + gulong error_handler; + + if (error) + error_handler = g_signal_connect (css_provider, + "parsing-error", + G_CALLBACK (gtk_css_provider_propagate_error), + error); + else + error_handler = 0; /* silence gcc */ + + scanner = gtk_css_scanner_new (file, data, length); + + parse_stylesheet (css_provider, scanner); + + gtk_css_scanner_destroy (scanner); if (error) { @@ -2643,25 +2657,6 @@ parse_stylesheet (GtkCssProvider *css_provider, return TRUE; } -static gboolean -gtk_css_provider_load_internal (GtkCssProvider *css_provider, - GFile *file, - const char *data, - gsize length, - GError **error) -{ - GScanner *scanner; - gboolean result; - - scanner = gtk_css_scanner_new (file, data, length); - - result = parse_stylesheet (css_provider, scanner, error); - - gtk_css_scanner_destroy (scanner); - - return result; -} - /** * gtk_css_provider_load_from_data: * @css_provider: a #GtkCssProvider