From d79b9626414f0543612545c498c560108a388e9b Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Sat, 1 Nov 2014 09:26:02 +0100 Subject: [PATCH] fixed compilation against newer version of json-c (deprecation of the function json_object_object_get). --- NEWS | 6 ++++++ src/lp_json.c | 63 ++++++++++++++++++++++++++++++++++------------------------- src/lp_ws.c | 2 +- 3 files changed, 43 insertions(+), 28 deletions(-) diff --git a/NEWS b/NEWS index 1b09d49..66630a0 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ +v1.3.2 +------ + +* fixed compilation against newer version of json-c (deprecation + of the function json_object_object_get). + v1.3.1 ------ diff --git a/src/lp_json.c b/src/lp_json.c index 10b5927..fcc0651 100644 --- a/src/lp_json.c +++ b/src/lp_json.c @@ -73,25 +73,28 @@ static struct bpph *json_to_bpph(json_object *o) struct bpph *bpph; const char *status; time_t date_created; + json_object *j; - binary_package_name = json_object_get_string - (json_object_object_get(o, "binary_package_name")); + json_object_object_get_ex(o, "binary_package_name", &j); + binary_package_name = json_object_get_string(j); - binary_package_version = json_object_get_string - (json_object_object_get(o, "binary_package_version")); + json_object_object_get_ex(o, "binary_package_version", &j); + binary_package_version = json_object_get_string(j); - distro_arch_series_link = json_object_get_string - (json_object_object_get(o, "distro_arch_series_link")); + json_object_object_get_ex(o, "distro_arch_series_link", &j); + distro_arch_series_link = json_object_get_string(j); - self_link = json_object_get_string - (json_object_object_get(o, "self_link")); + json_object_object_get_ex(o, "self_link", &j); + self_link = json_object_get_string(j); - arch_specific = json_object_get_boolean - (json_object_object_get(o, "architecture_specific")); + json_object_object_get_ex(o, "architecture_specific", &j); + arch_specific = json_object_get_boolean(j); - date_created = json_to_time(json_object_object_get(o, "date_created")); + json_object_object_get_ex(o, "date_created", &j); + date_created = json_to_time(j); - status = json_object_get_string(json_object_object_get(o, "status")); + json_object_object_get_ex(o, "status", &j); + status = json_object_get_string(j); bpph = bpph_new(binary_package_name, binary_package_version, @@ -150,21 +153,23 @@ struct distro_arch_series *json_object_to_distro_arch_series(json_object *o) const char *architecture_tag; json_bool is_nominated_arch_indep; const char *distroseries_link; + json_object *j; - display_name = json_object_get_string - (json_object_object_get(o, "display_name")); + json_object_object_get_ex(o, "display_name", &j); + display_name = json_object_get_string(j); - title = json_object_get_string - (json_object_object_get(o, "title")); + json_object_object_get_ex(o, "title", &j); + title = json_object_get_string(j); - architecture_tag = json_object_get_string - (json_object_object_get(o, "architecture_tag")); + json_object_object_get_ex(o, "architecture_tag", &j); + architecture_tag = json_object_get_string(j); - distroseries_link = json_object_get_string - (json_object_object_get(o, "distroseries_link")); + json_object_object_get_ex(o, "distroseries_link", &j); + distroseries_link = json_object_get_string (j); + json_object_object_get_ex(o, "is_nominated_arch_indep", &j); is_nominated_arch_indep = json_object_get_boolean - (json_object_object_get(o, "is_nominated_arch_indep")); + (j); return distro_arch_series_new(display_name, title, @@ -179,15 +184,19 @@ struct distro_series *json_object_to_distro_series(json_object *o) const char *title; const char *name; const char *version; + json_object *j; - displayname = json_object_get_string - (json_object_object_get(o, "displayname")); + json_object_object_get_ex(o, "displayname", &j); + displayname = json_object_get_string(j); - title = json_object_get_string(json_object_object_get(o, "title")); + json_object_object_get_ex(o, "title", &j); + title = json_object_get_string(j); - version = json_object_get_string(json_object_object_get(o, "version")); + json_object_object_get_ex(o, "version", &j); + version = json_object_get_string(j); - name = json_object_get_string(json_object_object_get(o, "name")); + json_object_object_get_ex(o, "name", &j); + name = json_object_get_string(j); return distro_series_new(name, version, @@ -202,7 +211,7 @@ struct bpph **json_object_to_bpph_list(json_object *o) struct bpph **entries, *h; const struct distro_arch_series *distro; - o_entries = json_object_object_get(o, "entries"); + json_object_object_get_ex(o, "entries", &o_entries); if (!o_entries) return NULL; diff --git a/src/lp_ws.c b/src/lp_ws.c index f04f169..fe93e39 100644 --- a/src/lp_ws.c +++ b/src/lp_ws.c @@ -205,7 +205,7 @@ struct bpph **get_bpph_list(const char *archive_url, result = bpph_list_append_list(result, json_object_to_bpph_list(o)); - o_next = json_object_object_get(o, "next_collection_link"); + json_object_object_get_ex(o, "next_collection_link", &o_next); if (o_next) url = strdup(json_object_get_string(o_next)); -- 2.7.4