summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac2
-rw-r--r--json-glib/json-object.c25
2 files changed, 26 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 50ea8ac..8a242a4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@ m4_define([lt_revision], [json_interface_age])
m4_define([lt_age],
[m4_eval(json_binary_age - json_interface_age)])
-m4_define([glib_req_version], [2.14])
+m4_define([glib_req_version], [2.12])
AC_PREREQ(2.59)
AC_INIT([json-glib], [json_version], [], [json-glib])
diff --git a/json-glib/json-object.c b/json-glib/json-object.c
index 8eb41fc..736df6a 100644
--- a/json-glib/json-object.c
+++ b/json-glib/json-object.c
@@ -160,6 +160,31 @@ json_object_add_member (JsonObject *object,
g_hash_table_replace (object->members, g_strdup (member_name), node);
}
+/* FIXME: yuck */
+#if GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 14
+static void
+get_keys (gpointer key,
+ gpointer value,
+ gpointer user_data)
+{
+ GList **keys = user_data;
+
+ *keys = g_list_prepend (*keys, key);
+}
+
+static GList *
+g_hash_table_get_keys (GHashTable *hash_table)
+{
+ GList *retval = NULL;
+
+ g_return_val_if_fail (hash_table != NULL, NULL);
+
+ g_hash_table_foreach (hash_table, get_keys, &retval);
+
+ return retval;
+}
+#endif /* GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 14 */
+
/**
* json_object_get_members:
* @object: a #JsonObject