|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V5 10/32] libxl: fix JSON generator for uint64_t
On Tue, May 20, 2014 at 01:55:03PM +0100, Ian Campbell wrote:
> On Tue, 2014-05-13 at 22:53 +0100, Wei Liu wrote:
> > yajl_gen_integer cannot cope with uint64_t.
>
> Please can you describe how it fails and/or what it generates in
> practice. Perhaps indicate if/how we would cope with it on parse?
>
No problem.
> In particular I think the result of this change does *not* involve
> adding quotes around the number?
>
Yes, you're right.
> > A new function called
> > libxl__uint64_gen_json is introduced to handle uint64_t.
> >
> > Also removed a duplicated definition of MemKB while I was there.
> >
> > Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> > ---
> > tools/libxl/idl.py | 2 +-
> > tools/libxl/libxl_json.c | 21 +++++++++++++++++++++
> > tools/libxl/libxl_json.h | 1 +
> > tools/libxl/libxl_types.idl | 4 +---
> > 4 files changed, 24 insertions(+), 4 deletions(-)
> >
> > diff --git a/tools/libxl/idl.py b/tools/libxl/idl.py
> > index e4dc79b..69e08e1 100644
> > --- a/tools/libxl/idl.py
> > +++ b/tools/libxl/idl.py
> > @@ -266,7 +266,7 @@ integer = Number("int", namespace = None, signed = True)
> > uint8 = UInt(8)
> > uint16 = UInt(16)
> > uint32 = UInt(32)
> > -uint64 = UInt(64)
> > +uint64 = UInt(64, json_fn = "libxl__uint64_gen_json")
> >
> > string = Builtin("char *", namespace = None, dispose_fn = "free",
> > json_fn = "libxl__string_gen_json",
> > diff --git a/tools/libxl/libxl_json.c b/tools/libxl/libxl_json.c
> > index 3ea56a4..ff23376 100644
> > --- a/tools/libxl/libxl_json.c
> > +++ b/tools/libxl/libxl_json.c
> > @@ -794,6 +794,27 @@ out:
> > return ret;
> > }
> >
> > +yajl_gen_status libxl__uint64_gen_json(yajl_gen hand, uint64_t val)
> > +{
> > + char *num;
> > + unsigned int len;
> > + yajl_gen_status s;
> > +
> > + if (asprintf(&num, "%"PRIu64, val) == -1) {
> > + s = yajl_gen_in_error_state;
> > + goto out;
> > + }
> > +
> > + len = strlen(num);
>
> asprintf returns len - 1 on success (I think, check for off by one in
> my reading of the manpage).
>
OK, I will use that.
Wei.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |