diff mbox series

[v2,07/10] parser: use SWUpdate internal type as master

Message ID 20240712152610.4442-1-ceggers@arri.de
State Accepted
Headers show
Series parser: fix various data type problems | expand

Commit Message

Christian Eggers July 12, 2024, 3:26 p.m. UTC
The 'expected_type' decides which type the supplied pointer has (rather
than the type detected by the used config parser). So make this more
explicit. Additionally fix pointer mismatch for INT64 in json adapter.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
 corelib/parsing_library_libconfig.c | 14 +++++++-------
 corelib/parsing_library_libjson.c   | 20 +++++++++++---------
 2 files changed, 18 insertions(+), 16 deletions(-)
diff mbox series

Patch

diff --git a/corelib/parsing_library_libconfig.c b/corelib/parsing_library_libconfig.c
index ea4b03a476f5..4442cefd3c07 100644
--- a/corelib/parsing_library_libconfig.c
+++ b/corelib/parsing_library_libconfig.c
@@ -39,20 +39,20 @@  static unsigned int map_field_type(field_type_t type)
 
 static void get_value_libconfig(const config_setting_t *e, void *dest, field_type_t expected_type)
 {
-	int type = config_setting_type(e);
-	if (type != map_field_type(expected_type))
+	int parsed_type = config_setting_type(e);
+	if (parsed_type != map_field_type(expected_type))
 		return;
-	switch (type) {
-	case CONFIG_TYPE_INT:
+	switch (expected_type) {
+	case TYPE_INT:
 		*(int *)dest = config_setting_get_int(e);
 		break;
-	case CONFIG_TYPE_INT64:
+	case TYPE_INT64:
 		*(long long *)dest = config_setting_get_int64(e);
 		break;
-	case CONFIG_TYPE_BOOL:
+	case TYPE_BOOL:
 		*(bool *)dest = config_setting_get_bool(e);
 		break;
-	case CONFIG_TYPE_FLOAT:
+	case TYPE_DOUBLE:
 		*(double *)dest = config_setting_get_float(e);
 		break;
 		/* Do nothing, add if needed */
diff --git a/corelib/parsing_library_libjson.c b/corelib/parsing_library_libjson.c
index fee7bbe3ad7b..74db22fc63f1 100644
--- a/corelib/parsing_library_libjson.c
+++ b/corelib/parsing_library_libjson.c
@@ -120,22 +120,24 @@  const char *get_field_string_json(json_object *e, const char *path)
 
 static void get_value_json(json_object *e, void *dest, field_type_t expected_type)
 {
-	enum json_type type;
-	type = json_object_get_type(e);
-	if (type != map_field_type(expected_type))
+	enum json_type parsed_type;
+	parsed_type = json_object_get_type(e);
+	if (parsed_type != map_field_type(expected_type))
 		return;
-	switch (type) {
-	case json_type_boolean:
+	switch (expected_type) {
+	case TYPE_BOOL:
 		*(bool *)dest = json_object_get_boolean(e);
 		break;
-	case json_type_int:
+	case TYPE_INT:
 		*(int *)dest = json_object_get_int(e);
 		break;
-	case json_type_double:
-		*(double *)dest = json_object_get_double(e);
+	case TYPE_INT64:
+		*(long long *)dest = json_object_get_int(e);
 		break;
-	default:
+	case TYPE_DOUBLE:
+		*(double *)dest = json_object_get_double(e);
 		break;
+		/* Do nothing, add if needed */
 	}
 }