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

Re: [Xen-devel] [PATCH 2/3] libxl_types.idl: use empty Struct for invalid domain type



On Thu, 2014-04-10 at 16:04 +0100, Wei Liu wrote:
> On Thu, Apr 10, 2014 at 03:50:02PM +0100, Ian Campbell wrote:
> > > > 
> > > > And if it did could we not detect the use of None with an explicit check
> > > 
> > > gentypes does that already. The result is not generating anything.
> > 
> > So make it generate something? That's just a map_open/map_close isn't
> > it?
> > 
> 
> So if a keyed-union field is of type None:

Looks plausible, but I've not diffed the generated code.

What about yajl_gen_null() perhaps?

> 
> diff --git a/tools/libxl/gentypes.py b/tools/libxl/gentypes.py
> index 1a3b91c..bfb95e2 100644
> --- a/tools/libxl/gentypes.py
> +++ b/tools/libxl/gentypes.py
> @@ -220,6 +220,13 @@ def libxl_C_type_gen_json(ty, v, indent = "    ", parent 
> = None):
>              s += "case %s:\n" % f.enumname
>              if f.type is not None:
>                  s += libxl_C_type_gen_json(f.type, fexpr, indent + "    ", 
> nparent)
> +            else:
> +                s += "    yajl_gen_map_open(hand);\n"
> +                s += "    if (s != yajl_gen_status_ok)\n"
> +                s += "        goto out;\n"
> +                s += "    yajl_gen_map_close(hand);\n"
> +                s += "    if (s != yajl_gen_status_ok)\n"
> +                s += "        goto out;\n"
>              s += "    break;\n"
>          s += "}\n"
>      elif isinstance(ty, idl.Struct) and (parent is None or ty.json_fn is 
> None):
> 



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