{
return (void *)jso;
}
+static inline const struct json_object_boolean *JC_BOOL_C(const struct json_object_base *jso)
+{
+ return (const void *)jso;
+}
static inline struct json_object_double *JC_DOUBLE(struct json_object_base *jso)
{
return (void *)jso;
#undef jso
}
-// XAX ------------------------------ start unconverted code:
/* json_object_boolean */
static int json_object_boolean_to_json_string(struct json_object *jso, struct printbuf *pb,
int level, int flags)
{
- if (jso->o.c_boolean)
+#define jso ((struct json_object_base *)jso)
+ if (JC_BOOL(jso)->c_boolean)
return printbuf_strappend(pb, "true");
return printbuf_strappend(pb, "false");
+#undef jso
}
struct json_object *json_object_new_boolean(json_bool b)
{
- struct json_object *jso = json_object_new(json_type_boolean);
- if (!jso)
+ struct json_object_base *jso_base;
+ jso_base = JSON_OBJECT_NEW(boolean, &json_object_generic_delete);
+ if (!jso_base)
return NULL;
- jso->_to_json_string = &json_object_boolean_to_json_string;
- jso->o.c_boolean = b;
- return jso;
+ struct json_object_boolean *jso = (struct json_object_boolean *)jso_base;
+ jso->c_boolean = b;
+ return PUBLIC(jso_base);
}
json_bool json_object_get_boolean(const struct json_object *jso)
return 0;
switch (jso->o_type)
{
- case json_type_boolean: return jso->o.c_boolean;
+#define jso ((const struct json_object_base *)jso)
+ case json_type_boolean: return JC_BOOL_C(jso)->c_boolean;
+#undef jso
case json_type_int:
switch (jso->o.c_int.cint_type)
{
int json_object_set_boolean(struct json_object *jso, json_bool new_value)
{
+#define jso ((struct json_object_base *)jso)
if (!jso || jso->o_type != json_type_boolean)
return 0;
- jso->o.c_boolean = new_value;
+ JC_BOOL(jso)->c_boolean = new_value;
return 1;
+#undef jso
}
+// XAX ------------------------------ start unconverted code:
/* json_object_int */
static int json_object_int_to_json_string(struct json_object *jso, struct printbuf *pb, int level,
if (jso->o.c_double >= INT32_MAX)
return INT32_MAX;
return (int32_t)jso->o.c_double;
- case json_type_boolean: return jso->o.c_boolean;
+#define jso ((const struct json_object_base *)jso)
+ case json_type_boolean: return JC_BOOL_C(jso)->c_boolean;
+#undef jso
default: return 0;
}
}
if (jso->o.c_double <= INT64_MIN)
return INT64_MIN;
return (int64_t)jso->o.c_double;
- case json_type_boolean: return jso->o.c_boolean;
+#define jso ((const struct json_object_base *)jso)
+ case json_type_boolean: return JC_BOOL_C(jso)->c_boolean;
+#undef jso
case json_type_string:
if (json_parse_int64(get_string_component(jso), &cint) == 0)
return cint;
if (jso->o.c_double < 0)
return 0;
return (uint64_t)jso->o.c_double;
- case json_type_boolean: return jso->o.c_boolean;
+#define jso ((const struct json_object_base *)jso)
+ case json_type_boolean: return JC_BOOL_C(jso)->c_boolean;
+#undef jso
case json_type_string:
if (json_parse_uint64(get_string_component(jso), &cuint) == 0)
return cuint;
case json_object_int_type_uint64: return jso->o.c_int.cint.c_uint64;
default: json_abort("invalid cint_type");
}
- case json_type_boolean: return jso->o.c_boolean;
+#define jso ((const struct json_object_base *)jso)
+ case json_type_boolean: return JC_BOOL_C(jso)->c_boolean;
+#undef jso
case json_type_string:
errno = 0;
cdouble = strtod(get_string_component(jso), &errPtr);
switch (jso1->o_type)
{
- case json_type_boolean: return (jso1->o.c_boolean == jso2->o.c_boolean);
+ case json_type_boolean: assert(0); //return (jso1->o.c_boolean == jso2->o.c_boolean);
case json_type_double: return (jso1->o.c_double == jso2->o.c_double);
{
switch (src->o_type)
{
- case json_type_boolean: *dst = json_object_new_boolean(src->o.c_boolean); break;
+#define src ((struct json_object_base *)src)
+ case json_type_boolean: *dst = json_object_new_boolean(JC_BOOL(src)->c_boolean); break;
+#undef src
case json_type_double: *dst = json_object_new_double(src->o.c_double); break;