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

Re: [Xen-devel] [PATCH RFC 3/9] libxl_internal: make JSON_* types or-able



On Thu, 2014-04-10 at 16:40 +0100, Wei Liu wrote:
> Libxl can generate number as type JSON_INTEGER, JSON_DOUBLE or
> JSON_NUMBER,

Those are three distinct types, right? Rather than NUMBER being the
union of INTERGERs and DOUBLEs?

>  string as type JSON_STRING or JSON_NULL (if string is
> null).
> 
> So make JSON_* type or-able

I think the phrase you want is "make FOO a bit-field".

> +    JSON_ANY     = (1 << 8)

Is ANY here meaning "Any of the others" or is it a specific JSON type?
If the former then should this be 0xff? (or whatever mask achieves the
aim of matching all types)

>  } libxl__json_node_type;
>  
>  typedef struct libxl__json_object {
> diff --git a/tools/libxl/libxl_json.c b/tools/libxl/libxl_json.c
> index 002ae2d..da315f6 100644
> --- a/tools/libxl/libxl_json.c
> +++ b/tools/libxl/libxl_json.c
> @@ -363,7 +363,7 @@ const libxl__json_object *libxl__json_map_get(const char 
> *key,
>                  return NULL;
>              if (strcmp(key, node->map_key) == 0) {
>                  if (expected_type == JSON_ANY
> -                    || (node->obj && node->obj->type == expected_type)) {
> +                    || (node->obj && (node->obj->type & expected_type))) {
>                      return node->obj;
>                  } else {
>                      return NULL;



_______________________________________________
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®.