qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 13/14] qemu-img: Use QAPI visitor to generate


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH v2 13/14] qemu-img: Use QAPI visitor to generate JSON
Date: Wed, 25 Nov 2015 08:42:47 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 11/25/2015 12:39 AM, Fam Zheng wrote:
> A visible improvement is that "filename" is now included in the output
> if it's valid.
> 
> Signed-off-by: Fam Zheng <address@hidden>
> ---
>  qemu-img.c                 | 39 ++++++++++++-------
>  tests/qemu-iotests/122.out | 96 
> ++++++++++++++++++++++++++--------------------
>  2 files changed, 79 insertions(+), 56 deletions(-)
> 

> @@ -2155,21 +2161,26 @@ static void dump_map_entry(OutputFormat 
> output_format, MapEntry *e,
>          }
>          break;
>      case OFORMAT_JSON:
> -        printf("%s{ \"start\": %"PRId64", \"length\": %"PRId64","
> -               " \"depth\": %ld,"
> -               " \"zero\": %s, \"data\": %s",
> -               (e->start == 0 ? "[" : ",\n"),
> -               e->start, e->length, e->depth,
> -               e->zero ? "true" : "false",
> -               e->data ? "true" : "false");
> -        if (e->has_offset) {
> -            printf(", \"offset\": %"PRId64"", e->offset);
> -        }
> -        putchar('}');
> +        ov = qmp_output_visitor_new();
> +        visit_type_MapEntry(qmp_output_get_visitor(ov),
> +                            &e, NULL, &error_abort);
> +        obj = qmp_output_get_qobject(ov);
> +        str = qobject_to_json(obj);

It would be nice to someday add a visitor that goes directly to json,
instead of through an intermediate QObject. But that's not for this
series; your conversion here is sane.

> @@ -2213,9 +2224,9 @@ static int get_block_status(BlockDriverState *bs, 
> int64_t sector_num,
>      e->offset = ret & BDRV_BLOCK_OFFSET_MASK;
>      e->has_offset = !!(ret & BDRV_BLOCK_OFFSET_VALID);
>      e->depth = depth;
> -    if (e->has_offset) {
> +    if (file && e->has_offset) {
>          e->has_filename = true;
> -        e->filename = bs->filename;
> +        e->filename = file->filename;

Does this hunk belong in a different patch?

Reviewed-by: Eric Blake <address@hidden>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]