mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-17 14:30:15 +00:00
cssprovider: Do error handling differently
Instead of aborting a parse whenever we encounter an error, parse to the end. But if a GError was passed in, reset the provider completely as if nothing had been parsed.
This commit is contained in:
parent
992ee6a203
commit
8fb6fdd3e7
@ -2622,27 +2622,6 @@ parse_stylesheet (GtkCssProvider *css_provider,
|
||||
|
||||
if (expected_token != G_TOKEN_NONE)
|
||||
{
|
||||
/* If a GError was passed in, propagate the error and bail out,
|
||||
* else report a warning and keep going
|
||||
*/
|
||||
if (error != NULL)
|
||||
{
|
||||
result = FALSE;
|
||||
if (priv->error)
|
||||
g_propagate_error (error, priv->error);
|
||||
else
|
||||
g_set_error_literal (error,
|
||||
GTK_CSS_PROVIDER_ERROR,
|
||||
GTK_CSS_PROVIDER_ERROR_FAILED,
|
||||
"Error parsing stylesheet");
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_clear_error (&priv->error);
|
||||
priv->error = NULL;
|
||||
}
|
||||
|
||||
css_provider_reset_parser (css_provider);
|
||||
|
||||
while (!g_scanner_eof (scanner) &&
|
||||
|
Loading…
Reference in New Issue
Block a user