[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] libxl: fix generating array of enums in getypes.py
From: Oleksandr Grytsov <oleksandr_grytsov@xxxxxxxx> Enum always uses "x" value as input argument. In case of enum array "t" argument should be passed. Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@xxxxxxxx> --- tools/libxl/gentypes.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/libxl/gentypes.py b/tools/libxl/gentypes.py index 4ea7091..51a5539 100644 --- a/tools/libxl/gentypes.py +++ b/tools/libxl/gentypes.py @@ -404,13 +404,16 @@ def libxl_C_type_parse_json(ty, w, v, indent = " ", parent = None, discrimina elif isinstance(ty, idl.Enumeration): if discriminator is not None: raise Exception("Only KeyedUnion can have discriminator") + lv = "x" + if parent: + lv = w; s += "{\n" s += " const char *enum_str;\n" - s += " if (!libxl__json_object_is_string(x)) {\n" + s += " if (!libxl__json_object_is_string(%s)) {\n" % lv s += " rc = -1;\n" s += " goto out;\n" s += " }\n" - s += " enum_str = libxl__json_object_get_string(x);\n" + s += " enum_str = libxl__json_object_get_string(%s);\n" % lv s += " rc = %s_from_string(enum_str, %s);\n" % (ty.typename, ty.pass_arg(v, parent is None, idl.PASS_BY_REFERENCE)) s += " if (rc)\n" s += " goto out;\n" -- 2.7.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |