diff --git a/HACKS.rst b/HACKS.rst new file mode 100644 index 00000000..477fddeb --- /dev/null +++ b/HACKS.rst @@ -0,0 +1,28 @@ +Hacks of External libraries +=========================== + + +Hack of jansson +=============== + +Function that return the pointer of a json integer +-------------------------------------------------- + +Let quick access to write and read integer values + +diff -r jansson-2.14/src/jansson.h jansson-2.14-gines/src/jansson.h +316a317,318 +> json_int_t *json_integer_value_pointer(const json_t *integer); +> + +diff -r jansson-2.14/src/value.c jansson-2.14-gines/src/value.c +901a902,908 +> json_int_t *json_integer_value_pointer(const json_t *json) { +> if (!json_is_integer(json)) +> return 0; +> +> return &(json_to_integer(json)->value); +> } +> + + diff --git a/src/jansson.h b/src/jansson.h index 391c85e9..d223398a 100644 --- a/src/jansson.h +++ b/src/jansson.h @@ -314,6 +314,8 @@ json_int_t json_integer_value(const json_t *integer); double json_real_value(const json_t *real); double json_number_value(const json_t *json); +json_int_t *json_integer_value_pointer(const json_t *integer); + int json_string_set(json_t *string, const char *value); int json_string_setn(json_t *string, const char *value, size_t len); int json_string_set_nocheck(json_t *string, const char *value); diff --git a/src/value.c b/src/value.c index d5a11fe5..45f87584 100644 --- a/src/value.c +++ b/src/value.c @@ -907,6 +907,12 @@ json_int_t json_integer_value(const json_t *json) { return json_to_integer(json)->value; } +json_int_t *json_integer_value_pointer(const json_t *json) { + if (!json_is_integer(json)) + return 0; + return &(json_to_integer(json)->value); +} + int json_integer_set(json_t *json, json_int_t value) { if (!json_is_integer(json)) return -1;