[gtk+/wip/baedert/box: 175/234] builderparser: Don't needlessly copy requested object names
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/box: 175/234] builderparser: Don't needlessly copy requested object names
- Date: Sun, 16 Oct 2016 17:09:42 +0000 (UTC)
commit e89a5d3108cab4fca5346f0443f0249c99fd8a5f
Author: Timm Bäder <mail baedert org>
Date: Mon Sep 12 21:39:33 2016 +0200
builderparser: Don't needlessly copy requested object names
gtk/gtkbuilderparser.c | 15 ++++-----------
gtk/gtkbuilderprivate.h | 2 +-
2 files changed, 5 insertions(+), 12 deletions(-)
---
diff --git a/gtk/gtkbuilderparser.c b/gtk/gtkbuilderparser.c
index 6fdef1c..b4a9e9c 100644
--- a/gtk/gtkbuilderparser.c
+++ b/gtk/gtkbuilderparser.c
@@ -221,11 +221,11 @@ static gboolean
is_requested_object (const gchar *object,
ParserData *data)
{
- GSList *l;
+ int i;
- for (l = data->requested_objects; l; l = l->next)
+ for (i = 0; data->requested_objects[i]; ++i)
{
- if (g_strcmp0 (l->data, object) == 0)
+ if (g_strcmp0 (data->requested_objects[i], object) == 0)
return TRUE;
}
@@ -1238,14 +1238,8 @@ _gtk_builder_parser_parse_buffer (GtkBuilder *builder,
if (requested_objs)
{
- gint i;
-
data.inside_requested_object = FALSE;
- for (i = 0; requested_objs[i]; ++i)
- {
- data.requested_objects = g_slist_prepend (data.requested_objects,
- g_strdup (requested_objs[i]));
- }
+ data.requested_objects = requested_objs;
}
else
{
@@ -1295,7 +1289,6 @@ _gtk_builder_parser_parse_buffer (GtkBuilder *builder,
g_slist_free_full (data.stack, (GDestroyNotify)free_info);
g_slist_free_full (data.custom_finalizers, (GDestroyNotify)free_subparser);
g_slist_free (data.finalizers);
- g_slist_free_full (data.requested_objects, g_free);
g_free (data.domain);
g_hash_table_destroy (data.object_ids);
g_markup_parse_context_free (data.ctx);
diff --git a/gtk/gtkbuilderprivate.h b/gtk/gtkbuilderprivate.h
index 06b9a7a..f9c343f 100644
--- a/gtk/gtkbuilderprivate.h
+++ b/gtk/gtkbuilderprivate.h
@@ -118,7 +118,7 @@ typedef struct {
GSList *finalizers;
GSList *custom_finalizers;
- GSList *requested_objects; /* NULL if all the objects are requested */
+ char **requested_objects; /* NULL if all the objects are requested */
gboolean inside_requested_object;
gint requested_object_level;
gint cur_object_level;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]