[gtk+] cssprovider: Use g_file_load_bytes()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] cssprovider: Use g_file_load_bytes()
- Date: Mon, 5 Feb 2018 16:29:44 +0000 (UTC)
commit 452f2f03946f8b7aa272305c45456e5053c843ce
Author: Benjamin Otte <otte redhat com>
Date: Mon Feb 5 17:20:17 2018 +0100
cssprovider: Use g_file_load_bytes()
This way, we get a special no-copy case for resources.
https://bugzilla.gnome.org/show_bug.cgi?id=790270
gtk/gtkcssprovider.c | 17 +++++++++++------
1 files changed, 11 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index 8a9a2d5..d4d865b 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -1386,17 +1386,17 @@ gtk_css_provider_load_internal (GtkCssProvider *css_provider,
const char *text)
{
GtkCssScanner *scanner;
- char *free_data = NULL;
+ GBytes *bytes;
if (text == NULL)
{
GError *load_error = NULL;
- if (g_file_load_contents (file, NULL,
- &free_data, NULL,
- NULL, &load_error))
+ bytes = g_file_load_bytes (file, NULL, NULL, &load_error);
+
+ if (bytes)
{
- text = free_data;
+ text = g_bytes_get_data (bytes, NULL);
}
else
{
@@ -1428,6 +1428,10 @@ gtk_css_provider_load_internal (GtkCssProvider *css_provider,
}
}
}
+ else
+ {
+ bytes = NULL;
+ }
if (text)
{
@@ -1445,7 +1449,8 @@ gtk_css_provider_load_internal (GtkCssProvider *css_provider,
gtk_css_provider_postprocess (css_provider);
}
- g_free (free_data);
+ if (bytes)
+ g_bytes_unref (bytes);
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]