From 9e81870d0ba73db753b4f0f66b85366eb9844e80 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Mon, 8 Oct 2007 15:18:31 +0000 Subject: [PATCH] 2007-10-08 Emmanuele Bassi * clutter/clutter-script.c (json_parse_end): * clutter/json/json-object.c (json_object_get_members): Replace the GLib 2.14 API with the equivalent code for GLib < 2.14. * configure.ac: Revert the dependency bump. --- ChangeLog | 8 ++++++++ clutter/clutter-script.c | 21 ++++++++++++--------- clutter/json/json-object.c | 25 +++++++++++++++++++++++++ configure.ac | 2 +- 4 files changed, 46 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 18f3d5933..195f2f76d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-10-08 Emmanuele Bassi + + * clutter/clutter-script.c (json_parse_end): + * clutter/json/json-object.c (json_object_get_members): Replace + the GLib 2.14 API with the equivalent code for GLib < 2.14. + + * configure.ac: Revert the dependency bump. + 2007-10-08 Emmanuele Bassi Initial implementation of the UI definition files. (#424) diff --git a/clutter/clutter-script.c b/clutter/clutter-script.c index 2c3fa6757..1ea5ebb78 100644 --- a/clutter/clutter-script.c +++ b/clutter/clutter-script.c @@ -542,22 +542,25 @@ clutter_script_construct_object (ClutterScript *script, return oinfo->object; } +static void +for_each_object (gpointer key, + gpointer value, + gpointer data) +{ + ClutterScript *script = data; + ObjectInfo *oinfo = value; + + clutter_script_construct_object (script, oinfo); +} + static void json_parse_end (JsonParser *parser, gpointer user_data) { ClutterScript *script = user_data; ClutterScriptPrivate *priv = script->priv; - GList *objects, *l; - objects = g_hash_table_get_values (priv->objects); - for (l = objects; l; l = l->next) - { - ObjectInfo *oinfo = l->data; - - oinfo->object = clutter_script_construct_object (script, oinfo); - } - g_list_free (objects); + g_hash_table_foreach (priv->objects, for_each_object, script); } static void diff --git a/clutter/json/json-object.c b/clutter/json/json-object.c index bbea83d23..8720d19ad 100644 --- a/clutter/json/json-object.c +++ b/clutter/json/json-object.c @@ -158,6 +158,31 @@ json_object_add_member (JsonObject *object, g_hash_table_replace (object->members, g_strdup (member_name), node); } +#if GLIB_MAJOR_VERSION >= 2 && GLIB_MAJOR_VERSION < 14 +static void +get_keys (gpointer key, + gpointer value, + gpointer data) +{ + GList **list = data; + + *list = g_list_prepend (*list, key); +} + +static GList * +g_hash_table_get_keys (GHashTable *hash_table) +{ + GList *retval; + + g_return_val_if_fail (hash_table != NULL, NULL); + + retval = NULL; + g_hash_table_foreach (hash_table, get_keys, &retval); + + return g_list_reverse (retval); +} +#endif + /** * json_object_get_members: * @object: a #JsonObject diff --git a/configure.ac b/configure.ac index 0ded302eb..6e251873d 100644 --- a/configure.ac +++ b/configure.ac @@ -273,7 +273,7 @@ AC_SUBST([clutterbackendlib]) dnl ======================================================================== -pkg_modules="pangoft2 glib-2.0 >= 2.14 gobject-2.0 gthread-2.0 gdk-pixbuf-2.0 $BACKEND_PC_FILES" +pkg_modules="pangoft2 glib-2.0 >= 2.12 gobject-2.0 gthread-2.0 gdk-pixbuf-2.0 $BACKEND_PC_FILES" PKG_CHECK_MODULES(CLUTTER_DEPS, [$pkg_modules]) dnl ========================================================================