[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH V2 2/9] libxl_json: Export json_object related function.



On Mon, 2012-09-17 at 19:22 +0100, Anthony PERARD wrote:
> Export libxl__json_object_alloc and libxl__json_object_append_to to use them 
> in
> a later patch.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>

Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

> ---
>  tools/libxl/libxl_internal.h |  8 ++++++++
>  tools/libxl/libxl_json.c     | 34 +++++++++++++++++-----------------
>  2 files changed, 25 insertions(+), 17 deletions(-)
> 
> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
> index b6f54ba..3c2dcaa 100644
> --- a/tools/libxl/libxl_internal.h
> +++ b/tools/libxl/libxl_internal.h
> @@ -1511,6 +1511,14 @@ static inline long long 
> libxl__json_object_get_integer(const libxl__json_object
>          return -1;
>  }
>  
> +/* Objects allocated using this function must be free with
> + * libxl__json_object_free.
> + */
> +_hidden libxl__json_object *libxl__json_object_alloc(libxl__gc *gc,
> +                                                     libxl__json_node_type 
> type);
> +_hidden int libxl__json_object_append_to(libxl__gc *gc,
> +                                         libxl__json_object *obj,
> +                                         libxl__json_object *dst);
>  _hidden libxl__json_object *libxl__json_array_get(const libxl__json_object 
> *o,
>                                                    int i);
>  _hidden
> diff --git a/tools/libxl/libxl_json.c b/tools/libxl/libxl_json.c
> index 9c3dca2..0539865 100644
> --- a/tools/libxl/libxl_json.c
> +++ b/tools/libxl/libxl_json.c
> @@ -205,7 +205,7 @@ yajl_gen_status libxl__string_gen_json(yajl_gen hand,
>   * libxl__json_object helper functions
>   */
>  
> -static libxl__json_object *json_object_alloc(libxl__gc *gc,
> +libxl__json_object *libxl__json_object_alloc(libxl__gc *gc,
>                                               libxl__json_node_type type)
>  {
>      libxl__json_object *obj;
> @@ -231,7 +231,7 @@ static libxl__json_object *json_object_alloc(libxl__gc 
> *gc,
>      return obj;
>  }
>  
> -static int json_object_append_to(libxl__gc *gc,
> +int libxl__json_object_append_to(libxl__gc *gc,
>                                   libxl__json_object *obj,
>                                   libxl__json_object *dst)
>  {
> @@ -388,9 +388,9 @@ static int json_callback_null(void *opaque)
>  
>      DEBUG_GEN(ctx, null);
>  
> -    obj = json_object_alloc(ctx->gc, JSON_NULL);
> +    obj = libxl__json_object_alloc(ctx->gc, JSON_NULL);
>  
> -    if (json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
> +    if (libxl__json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
>          libxl__json_object_free(ctx->gc, obj);
>          return 0;
>      }
> @@ -405,10 +405,10 @@ static int json_callback_boolean(void *opaque, int 
> boolean)
>  
>      DEBUG_GEN_VALUE(ctx, bool, boolean);
>  
> -    obj = json_object_alloc(ctx->gc,
> -                            boolean ? JSON_TRUE : JSON_FALSE);
> +    obj = libxl__json_object_alloc(ctx->gc,
> +                                   boolean ? JSON_TRUE : JSON_FALSE);
>  
> -    if (json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
> +    if (libxl__json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
>          libxl__json_object_free(ctx->gc, obj);
>          return 0;
>      }
> @@ -441,7 +441,7 @@ static int json_callback_number(void *opaque, const char 
> *s, libxl_yajl_length l
>              goto error;
>          }
>  
> -        obj = json_object_alloc(ctx->gc, JSON_DOUBLE);
> +        obj = libxl__json_object_alloc(ctx->gc, JSON_DOUBLE);
>          obj->u.d = d;
>      } else {
>          long long i = strtoll(s, NULL, 10);
> @@ -450,14 +450,14 @@ static int json_callback_number(void *opaque, const 
> char *s, libxl_yajl_length l
>              goto error;
>          }
>  
> -        obj = json_object_alloc(ctx->gc, JSON_INTEGER);
> +        obj = libxl__json_object_alloc(ctx->gc, JSON_INTEGER);
>          obj->u.i = i;
>      }
>      goto out;
>  
>  error:
>      /* If the conversion fail, we just store the original string. */
> -    obj = json_object_alloc(ctx->gc, JSON_NUMBER);
> +    obj = libxl__json_object_alloc(ctx->gc, JSON_NUMBER);
>  
>      t = malloc(len + 1);
>      if (t == NULL) {
> @@ -471,7 +471,7 @@ error:
>      obj->u.string = t;
>  
>  out:
> -    if (json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
> +    if (libxl__json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
>          libxl__json_object_free(ctx->gc, obj);
>          return 0;
>      }
> @@ -498,10 +498,10 @@ static int json_callback_string(void *opaque, const 
> unsigned char *str,
>      strncpy(t, (const char *) str, len);
>      t[len] = 0;
>  
> -    obj = json_object_alloc(ctx->gc, JSON_STRING);
> +    obj = libxl__json_object_alloc(ctx->gc, JSON_STRING);
>      obj->u.string = t;
>  
> -    if (json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
> +    if (libxl__json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
>          libxl__json_object_free(ctx->gc, obj);
>          return 0;
>      }
> @@ -560,10 +560,10 @@ static int json_callback_start_map(void *opaque)
>  
>      DEBUG_GEN(ctx, map_open);
>  
> -    obj = json_object_alloc(ctx->gc, JSON_MAP);
> +    obj = libxl__json_object_alloc(ctx->gc, JSON_MAP);
>  
>      if (ctx->current) {
> -        if (json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
> +        if (libxl__json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
>              libxl__json_object_free(ctx->gc, obj);
>              return 0;
>          }
> @@ -601,10 +601,10 @@ static int json_callback_start_array(void *opaque)
>  
>      DEBUG_GEN(ctx, array_open);
>  
> -    obj = json_object_alloc(ctx->gc, JSON_ARRAY);
> +    obj = libxl__json_object_alloc(ctx->gc, JSON_ARRAY);
>  
>      if (ctx->current) {
> -        if (json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
> +        if (libxl__json_object_append_to(ctx->gc, obj, ctx->current) == -1) {
>              libxl__json_object_free(ctx->gc, obj);
>              return 0;
>          }



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.