[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_obj
From: |
Jose E. Marchesi |
Subject: |
Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object. |
Date: |
Tue, 21 Jul 2020 11:31:12 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Hi Kostas.
Hello, I pushed a new patch with the changes discussed on the
previous thread applied.
Thanks for the new version of the patch.
See comments below.
From: kostasch <sdi1600195@di.uoa.gr>
Date: Fri, 17 Jul 2020 23:32:34 +0300
Subject: [PATCH] Added convert functions to pk-mi-json (pk_val->json,
json->pk_val)
2020-07-17 Kostas Chasialis <sdi1600195@di.uoa.gr>
* poke/pk-mi-json.h (pk_mi_val_to_json): Prototype.
(pk_mi_json_to_val): Prototype.
* poke/pk-mi-json.c (pk_mi_val_to_json): Define.
(pk_mi_json_to_val): Define.
(pk_mi_val_to_json): New function.
(pk_mi_val_to_json_1) : Likewise.
(pk_mi_int_to_json): Likewise.
(pk_mi_string_to_json): Likewise.
(pk_mi_offset_to_json): Likewise.
(pk_mi_mapping_to_json): Likewise.
(pk_mi_struct_to_json): Likewise.
(pk_mi_array_to_json): Likewise.
(pk_mi_null_to_json): Likewise.
(pk_mi_val_to_json): Likewise.
(pk_mi_val_to_json_1): Likewise.
(pk_mi_json_to_int): Likewise.
(pk_mi_json_to_uint): Likewise.
(pk_mi_json_to_string): Likewise.
(pk_mi_json_to_offset): Likewise.
(pk_mi_json_to_mapping): Likewise.
(pk_mi_json_to_struct): Likewise.
(pk_mi_json_to_array): Likewise.
(pk_mi_json_poke_value_type): Likewise.
(pk_mi_json_array_element_pair): Likewise.
---
ChangeLog | 27 ++
poke/pk-mi-json.c | 738 +++++++++++++++++++++++++++++++++++++++++++++-
poke/pk-mi-json.h | 44 ++-
3 files changed, 806 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 24c4efb8..be06a83d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2020-07-17 Kostas Chasialis <sdi1600195@di.uoa.gr>
+
+ * poke/pk-mi-json.h (pk_mi_val_to_json): Prototype.
+ (pk_mi_json_to_val): Prototype.
+ * poke/pk-mi-json.c (pk_mi_val_to_json): Define.
+ (pk_mi_json_to_val): Define.
+ (pk_mi_val_to_json): New function.
+ (pk_mi_val_to_json_1) : Likewise.
+ (pk_mi_int_to_json): Likewise.
+ (pk_mi_string_to_json): Likewise.
+ (pk_mi_offset_to_json): Likewise.
+ (pk_mi_mapping_to_json): Likewise.
+ (pk_mi_struct_to_json): Likewise.
+ (pk_mi_array_to_json): Likewise.
+ (pk_mi_null_to_json): Likewise.
+ (pk_mi_val_to_json): Likewise.
+ (pk_mi_val_to_json_1): Likewise.
+ (pk_mi_json_to_int): Likewise.
+ (pk_mi_json_to_uint): Likewise.
+ (pk_mi_json_to_string): Likewise.
+ (pk_mi_json_to_offset): Likewise.
+ (pk_mi_json_to_mapping): Likewise.
+ (pk_mi_json_to_struct): Likewise.
+ (pk_mi_json_to_array): Likewise.
+ (pk_mi_json_poke_value_type): Likewise.
+ (pk_mi_json_array_element_pair): Likewise.
+
2020-07-17 Bruno Haible <bruno@clisp.org>
Fix build failure during "make distcheck".
diff --git a/poke/pk-mi-json.c b/poke/pk-mi-json.c
index 3ec81924..8bb34fb8 100644
--- a/poke/pk-mi-json.c
+++ b/poke/pk-mi-json.c
@@ -17,7 +17,6 @@
*/
#include <config.h>
-
#include <assert.h>
#include <string.h>
#include <json.h>
@@ -429,6 +428,9 @@ pk_mi_json_to_msg (const char *str)
return NULL;
json = json_tokener_parse_ex (tokener, str, strlen (str));
+ if (!json)
+ pk_printf ("internal error: %s\n",
+ json_tokener_error_desc (json_tokener_get_error (tokener)));
Please replace that with an assert. I would also avoid using pk_printf
in this file, or any other printing to the screen.
+ /* OK, fill the properties of our object. */
+ PK_MI_CHECK (errmsg, json_object_object_add (string_object, "type",
string_type_object) != -1,
Line is too long. There are many other instances of this.
+static int
+pk_mi_json_to_mapping (pk_val *poke_value, struct json_object *obj, char
**errmsg)
+{
+ /* TODO: build me. */
You surely mean write me? :)
+ return 0;
+}
+
+int
+pk_mi_json_to_val_1 (pk_val *poke_value, struct json_object *obj, char
**errmsg)
+{
+ const char *poke_object_type;
+
+ poke_object_type = pk_mi_json_poke_value_type (obj);
+ if (poke_object_type == NULL) goto error;
+
+ if (!strncmp (poke_object_type, "\"Integer\"", strlen ("\"Integer\"")))
+ {
+ if (pk_mi_json_to_int (poke_value, obj, errmsg) == -1) goto error;
Please put the goto error in its own line.
- [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Konstantinos Chasialis, 2020/07/14
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Jose E. Marchesi, 2020/07/15
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Konstantinos Chasialis, 2020/07/17
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Konstantinos Chasialis, 2020/07/17
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object.,
Jose E. Marchesi <=
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Konstantinos Chasialis, 2020/07/21
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Jose E. Marchesi, 2020/07/21
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Jose E. Marchesi, 2020/07/22
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Konstantinos Chasialis, 2020/07/22
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Jose E. Marchesi, 2020/07/23
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Konstantinos Chasialis, 2020/07/23
- Re: [PATCH] pk_mi_json convert functions between a pk_val and a json_object., Jose E. Marchesi, 2020/07/23