* Re: [Qemu-devel] [PATCH 1/7] qapi: add Visitor interfaces for uint*_t and int*_t
[not found] ` <1335558083-26196-2-git-send-email-mdroth@linux.vnet.ibm.com>
@ 2012-05-01 21:37 ` Andreas Färber
0 siblings, 0 replies; 14+ messages in thread
From: Andreas Färber @ 2012-05-01 21:37 UTC (permalink / raw)
To: Michael Roth; +Cc: pbonzini, aliguori, qemu-devel
Am 27.04.2012 22:21, schrieb Michael Roth:
> This adds visitor interfaces for fixed-width integers types.
> Implementing these in visitors is optional, otherwise we fall back to
> visit_type_int() (int64_t) with some additional bounds checking to avoid
> integer overflows for cases where the value fetched exceeds the bounds
> of our target C type.
>
> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
/-F
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 6/7] qdev: use int32_t container for devfn property
[not found] ` <1335558083-26196-7-git-send-email-mdroth@linux.vnet.ibm.com>
@ 2012-05-01 21:52 ` Andreas Färber
0 siblings, 0 replies; 14+ messages in thread
From: Andreas Färber @ 2012-05-01 21:52 UTC (permalink / raw)
To: Michael Roth; +Cc: pbonzini, aliguori, qemu-devel, Michael S. Tsirkin
Am 27.04.2012 22:21, schrieb Michael Roth:
> Valid range for devfn is -1 to 255 (-1 for automatic assignment). We do
> not currently validate this due to devfn being stored as a uint32_t.
> This can lead to segfaults and other strange behavior.
>
> We could technically just cast it to int32_t to implement the checking,
> but this will not work for visitor-based setting where we may do additional
> bounds-checking based on target container type, which is int32_t for this
> case.
>
> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Upper limit matches my limited PCI knowledge; cc'ing mst.
/-F
> ---
> hw/pci.c | 2 +-
> hw/pci.h | 2 +-
> hw/qdev-properties.c | 11 ++++-------
> hw/qdev.h | 2 +-
> 4 files changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/hw/pci.c b/hw/pci.c
> index b706e69..7818c9b 100644
> --- a/hw/pci.c
> +++ b/hw/pci.c
> @@ -1538,7 +1538,7 @@ PCIDevice *pci_create_multifunction(PCIBus *bus, int devfn, bool multifunction,
> DeviceState *dev;
>
> dev = qdev_create(&bus->qbus, name);
> - qdev_prop_set_uint32(dev, "addr", devfn);
> + qdev_prop_set_int32(dev, "addr", devfn);
> qdev_prop_set_bit(dev, "multifunction", multifunction);
> return PCI_DEVICE(dev);
> }
> diff --git a/hw/pci.h b/hw/pci.h
> index 8d0aa49..3bc9218 100644
> --- a/hw/pci.h
> +++ b/hw/pci.h
> @@ -193,7 +193,7 @@ struct PCIDevice {
>
> /* the following fields are read only */
> PCIBus *bus;
> - uint32_t devfn;
> + int32_t devfn;
> char name[64];
> PCIIORegion io_regions[PCI_NUM_REGIONS];
>
> diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
> index 98dd06a..36d0aa0 100644
> --- a/hw/qdev-properties.c
> +++ b/hw/qdev-properties.c
> @@ -822,7 +822,7 @@ static void set_pci_devfn(Object *obj, Visitor *v, void *opaque,
> {
> DeviceState *dev = DEVICE(obj);
> Property *prop = opaque;
> - uint32_t *ptr = qdev_get_prop_ptr(dev, prop);
> + int32_t *ptr = qdev_get_prop_ptr(dev, prop);
> unsigned int slot, fn, n;
> Error *local_err = NULL;
> char *str = (char *)"";
> @@ -855,7 +855,7 @@ invalid:
>
> static int print_pci_devfn(DeviceState *dev, Property *prop, char *dest, size_t len)
> {
> - uint32_t *ptr = qdev_get_prop_ptr(dev, prop);
> + int32_t *ptr = qdev_get_prop_ptr(dev, prop);
>
> if (*ptr == -1) {
> return snprintf(dest, len, "<unset>");
> @@ -870,11 +870,8 @@ PropertyInfo qdev_prop_pci_devfn = {
> .print = print_pci_devfn,
> .get = get_int32,
> .set = set_pci_devfn,
> - /* FIXME: this should be -1...255, but the address is stored
> - * into an uint32_t rather than int32_t.
> - */
> - .min = 0,
> - .max = 0xFFFFFFFFULL,
> + .min = -1,
> + .max = 255,
> };
>
> /* --- blocksize --- */
> diff --git a/hw/qdev.h b/hw/qdev.h
> index 4e90119..d07da45 100644
> --- a/hw/qdev.h
> +++ b/hw/qdev.h
> @@ -267,7 +267,7 @@ extern PropertyInfo qdev_prop_blocksize;
> #define DEFINE_PROP_HEX64(_n, _s, _f, _d) \
> DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_hex64, uint64_t)
> #define DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d) \
> - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_pci_devfn, uint32_t)
> + DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_pci_devfn, int32_t)
>
> #define DEFINE_PROP_PTR(_n, _s, _f) \
> DEFINE_PROP(_n, _s, _f, qdev_prop_ptr, void*)
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 7/7] qdev: switch property accessors to fixed-width visitor interfaces
[not found] ` <1335558083-26196-8-git-send-email-mdroth@linux.vnet.ibm.com>
@ 2012-05-01 21:54 ` Andreas Färber
0 siblings, 0 replies; 14+ messages in thread
From: Andreas Färber @ 2012-05-01 21:54 UTC (permalink / raw)
To: Michael Roth; +Cc: pbonzini, aliguori, qemu-devel
Am 27.04.2012 22:21, schrieb Michael Roth:
> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
/-F
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v5 0/7] add fixed-width visitors and serialization tests/fixes
[not found] <1335558083-26196-1-git-send-email-mdroth@linux.vnet.ibm.com>
` (2 preceding siblings ...)
[not found] ` <1335558083-26196-8-git-send-email-mdroth@linux.vnet.ibm.com>
@ 2012-05-01 22:02 ` Andreas Färber
2012-05-11 1:22 ` Andreas Färber
` (2 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Andreas Färber @ 2012-05-01 22:02 UTC (permalink / raw)
To: Michael Roth; +Cc: pbonzini, aliguori, qemu-devel
[-- Attachment #1: Type: text/plain, Size: 715 bytes --]
Am 27.04.2012 22:21, schrieb Michael Roth:
> These patches apply on top of qemu.git master, and can also be obtained from:
> git://github.com/mdroth/qemu.git visitor-fixed-width-v5
I've tested that branch by running some random guests without noticeable
problems and by testing X86CPU level/xlevel simplifications on top
(attached).
NOTE: There is a v6 patch with fixed commit message hidden as reply
within this series but there is no matching -v6 branch pushed yet.
That being said, v5 series
Tested-by: Andreas Färber <afaerber@suse.de>
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-target-i386-Use-uint32-visitor-for-x-level-propertie.patch --]
[-- Type: text/x-patch; name="0001-target-i386-Use-uint32-visitor-for-x-level-propertie.patch", Size: 3075 bytes --]
>From b19a05c8dff628af5f0170cc53c8319af0074104 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Tue, 1 May 2012 23:33:13 +0200
Subject: [PATCH] target-i386: Use uint32 visitor for [x]level properties
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This simplifies the code and resolves TODOs.
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
target-i386/cpu.c | 42 ++++--------------------------------------
1 files changed, 4 insertions(+), 38 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 65d9af6..af8e1f3 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -715,66 +715,32 @@ static void x86_cpuid_get_level(Object *obj, Visitor *v, void *opaque,
const char *name, Error **errp)
{
X86CPU *cpu = X86_CPU(obj);
- int64_t value;
- value = cpu->env.cpuid_level;
- /* TODO Use visit_type_uint32() once available */
- visit_type_int(v, &value, name, errp);
+ visit_type_uint32(v, &cpu->env.cpuid_level, name, errp);
}
static void x86_cpuid_set_level(Object *obj, Visitor *v, void *opaque,
const char *name, Error **errp)
{
X86CPU *cpu = X86_CPU(obj);
- const int64_t min = 0;
- const int64_t max = UINT32_MAX;
- int64_t value;
-
- /* TODO Use visit_type_uint32() once available */
- visit_type_int(v, &value, name, errp);
- if (error_is_set(errp)) {
- return;
- }
- if (value < min || value > max) {
- error_set(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE, "",
- name ? name : "null", value, min, max);
- return;
- }
- cpu->env.cpuid_level = value;
+ visit_type_uint32(v, &cpu->env.cpuid_level, name, errp);
}
static void x86_cpuid_get_xlevel(Object *obj, Visitor *v, void *opaque,
const char *name, Error **errp)
{
X86CPU *cpu = X86_CPU(obj);
- int64_t value;
- value = cpu->env.cpuid_xlevel;
- /* TODO Use visit_type_uint32() once available */
- visit_type_int(v, &value, name, errp);
+ visit_type_uint32(v, &cpu->env.cpuid_xlevel, name, errp);
}
static void x86_cpuid_set_xlevel(Object *obj, Visitor *v, void *opaque,
const char *name, Error **errp)
{
X86CPU *cpu = X86_CPU(obj);
- const int64_t min = 0;
- const int64_t max = UINT32_MAX;
- int64_t value;
-
- /* TODO Use visit_type_uint32() once available */
- visit_type_int(v, &value, name, errp);
- if (error_is_set(errp)) {
- return;
- }
- if (value < min || value > max) {
- error_set(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE, "",
- name ? name : "null", value, min, max);
- return;
- }
- cpu->env.cpuid_xlevel = value;
+ visit_type_uint32(v, &cpu->env.cpuid_xlevel, name, errp);
}
static char *x86_cpuid_get_vendor(Object *obj, Error **errp)
--
1.7.7
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v5 0/7] add fixed-width visitors and serialization tests/fixes
[not found] <1335558083-26196-1-git-send-email-mdroth@linux.vnet.ibm.com>
` (3 preceding siblings ...)
2012-05-01 22:02 ` [Qemu-devel] [PATCH v5 0/7] add fixed-width visitors and serialization tests/fixes Andreas Färber
@ 2012-05-11 1:22 ` Andreas Färber
2012-05-11 15:19 ` Michael Roth
[not found] ` <1335558083-26196-3-git-send-email-mdroth@linux.vnet.ibm.com>
[not found] ` <1335558083-26196-5-git-send-email-mdroth@linux.vnet.ibm.com>
6 siblings, 1 reply; 14+ messages in thread
From: Andreas Färber @ 2012-05-11 1:22 UTC (permalink / raw)
To: Michael Roth, Luiz Capitulino
Cc: pbonzini, aliguori, qemu-devel, Markus Armbruster
Am 27.04.2012 22:21, schrieb Michael Roth:
> These patches apply on top of qemu.git master, and can also be obtained from:
> git://github.com/mdroth/qemu.git visitor-fixed-width-v5
>
> Some of these were being carried as part of Paolo's realize series due to some
> conflicts, but that looks to be targetted for 1.2 now, and there's a QMP
> visitor bug and a small issue with String visitor that were caught by the test
> infrastructure introduced here and fixed as part of this series, so I'd like to
> get this in for 1.1
Thanks, I've applied v6 to qom-next (as usual massaging the commit
messages a bit, in particular extending the last one):
http://repo.or.cz/w/qemu/afaerber.git/shortlog/refs/heads/qom-next
Reasoning:
This series has been around since end of February. v3 fixed a breakage
reported by Anthony (use of signed rather than unsigned visitors); since
then changes were mostly rebasing, and v5/v6 pass make check and my
smoke tests.
While this is not strictly a QOM series, I am picking it as a
prerequisite since Paolo had picked up patches 1, 6, 7 for his Object
properties movement and because patch 1 is handy for newly added
properties such as of the x86 CPU.
Further, Paolo agreed to rebase onto this series.
However, it is my understanding that patches 2 and 4 are independent
bugfixes and as such should go into 1.1.
Luiz, should I send Anthony a PULL for 1.1-rc2 including those two? Can
you ack then? Or do you want to cherry-pick them from qom-next yourself?
Andreas
> CHANGES SINCE v4:
> - Rebased on master (a8b69b8e2431edfcb6c4cfb069787e9071d6235b) and re-tested
> - Re-ordered patches so visitor bugs are applied before the test cases that
> that trigger them.
>
> CHANGES SINCE V3:
> - Rebased on master and re-tested
>
> CHANGES SINCE V2:
> - Fix qemu-test errors due to now-strict bounds-checking we doing assignment
> between signed/unsigned types.
> - uint* property getters/setters no longer use int* getters/setters.
> - valid devfn range is now explicitly enforced.
>
> CHANGES SINCE V1:
> - unit tests: covert QmpOutputVisitor qobject to json before passing it to
> QmpInputVisitor*. I.e., actually do the serialization :)
> - QmpInputVisitor, add handling for when a serialized QFloat gets read back
> as a QInt
> - unit tests: add coverage for String visitor
> - StringOutputVisitor: use %f for float representation
>
> These patches add fixed-width visitor interfaces and switches all qdev users
> over to using them.
>
> We also add a test suite which covers these interfaces, and also does some
> sanity checking on Visitors (Qmp/String currently, with a pluggable interface
> for future implementations) to ensure Visitor input/output handling remain
> self-consistent, which is not covered by the current visitor tests which mostly
> test input/output seperately. Maintaining this invariant is necessary to ensure
> that visitors can be used for serialization/deserialization in the future.
>
> hw/mc146818rtc.c | 7 -
> hw/pci.c | 2 +-
> hw/pci.h | 2 +-
> hw/qdev-addr.c | 4 +-
> hw/qdev-properties.c | 161 +++++---
> hw/qdev.h | 2 +-
> qapi/qapi-visit-core.c | 139 +++++++
> qapi/qapi-visit-core.h | 16 +
> qapi/qmp-input-visitor.c | 9 +-
> qapi/string-output-visitor.c | 2 +-
> tests/Makefile | 4 +-
> tests/test-string-output-visitor.c | 2 +-
> tests/test-visitor-serialization.c | 784 ++++++++++++++++++++++++++++++++++++
> 13 files changed, 1049 insertions(+), 85 deletions(-)
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH v5 0/7] add fixed-width visitors and serialization tests/fixes
2012-05-11 1:22 ` Andreas Färber
@ 2012-05-11 15:19 ` Michael Roth
0 siblings, 0 replies; 14+ messages in thread
From: Michael Roth @ 2012-05-11 15:19 UTC (permalink / raw)
To: Andreas Färber
Cc: pbonzini, aliguori, qemu-devel, Markus Armbruster, Luiz Capitulino
On Fri, May 11, 2012 at 03:22:15AM +0200, Andreas Färber wrote:
> Am 27.04.2012 22:21, schrieb Michael Roth:
> > These patches apply on top of qemu.git master, and can also be obtained from:
> > git://github.com/mdroth/qemu.git visitor-fixed-width-v5
> >
> > Some of these were being carried as part of Paolo's realize series due to some
> > conflicts, but that looks to be targetted for 1.2 now, and there's a QMP
> > visitor bug and a small issue with String visitor that were caught by the test
> > infrastructure introduced here and fixed as part of this series, so I'd like to
> > get this in for 1.1
>
> Thanks, I've applied v6 to qom-next (as usual massaging the commit
> messages a bit, in particular extending the last one):
> http://repo.or.cz/w/qemu/afaerber.git/shortlog/refs/heads/qom-next
>
> Reasoning:
> This series has been around since end of February. v3 fixed a breakage
> reported by Anthony (use of signed rather than unsigned visitors); since
> then changes were mostly rebasing, and v5/v6 pass make check and my
> smoke tests.
> While this is not strictly a QOM series, I am picking it as a
> prerequisite since Paolo had picked up patches 1, 6, 7 for his Object
> properties movement and because patch 1 is handy for newly added
> properties such as of the x86 CPU.
> Further, Paolo agreed to rebase onto this series.
>
> However, it is my understanding that patches 2 and 4 are independent
> bugfixes and as such should go into 1.1.
Agreed, my intention as well.
Thanks for taking these in!
>
> Luiz, should I send Anthony a PULL for 1.1-rc2 including those two? Can
> you ack then? Or do you want to cherry-pick them from qom-next yourself?
>
> Andreas
>
> > CHANGES SINCE v4:
> > - Rebased on master (a8b69b8e2431edfcb6c4cfb069787e9071d6235b) and re-tested
> > - Re-ordered patches so visitor bugs are applied before the test cases that
> > that trigger them.
> >
> > CHANGES SINCE V3:
> > - Rebased on master and re-tested
> >
> > CHANGES SINCE V2:
> > - Fix qemu-test errors due to now-strict bounds-checking we doing assignment
> > between signed/unsigned types.
> > - uint* property getters/setters no longer use int* getters/setters.
> > - valid devfn range is now explicitly enforced.
> >
> > CHANGES SINCE V1:
> > - unit tests: covert QmpOutputVisitor qobject to json before passing it to
> > QmpInputVisitor*. I.e., actually do the serialization :)
> > - QmpInputVisitor, add handling for when a serialized QFloat gets read back
> > as a QInt
> > - unit tests: add coverage for String visitor
> > - StringOutputVisitor: use %f for float representation
> >
> > These patches add fixed-width visitor interfaces and switches all qdev users
> > over to using them.
> >
> > We also add a test suite which covers these interfaces, and also does some
> > sanity checking on Visitors (Qmp/String currently, with a pluggable interface
> > for future implementations) to ensure Visitor input/output handling remain
> > self-consistent, which is not covered by the current visitor tests which mostly
> > test input/output seperately. Maintaining this invariant is necessary to ensure
> > that visitors can be used for serialization/deserialization in the future.
> >
> > hw/mc146818rtc.c | 7 -
> > hw/pci.c | 2 +-
> > hw/pci.h | 2 +-
> > hw/qdev-addr.c | 4 +-
> > hw/qdev-properties.c | 161 +++++---
> > hw/qdev.h | 2 +-
> > qapi/qapi-visit-core.c | 139 +++++++
> > qapi/qapi-visit-core.h | 16 +
> > qapi/qmp-input-visitor.c | 9 +-
> > qapi/string-output-visitor.c | 2 +-
> > tests/Makefile | 4 +-
> > tests/test-string-output-visitor.c | 2 +-
> > tests/test-visitor-serialization.c | 784 ++++++++++++++++++++++++++++++++++++
> > 13 files changed, 1049 insertions(+), 85 deletions(-)
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 2/7] qapi: QMP input visitor, handle floats parsed as ints
[not found] ` <1335558083-26196-3-git-send-email-mdroth@linux.vnet.ibm.com>
@ 2012-05-11 16:22 ` Luiz Capitulino
2012-05-11 17:04 ` Michael Roth
0 siblings, 1 reply; 14+ messages in thread
From: Luiz Capitulino @ 2012-05-11 16:22 UTC (permalink / raw)
To: Michael Roth; +Cc: pbonzini, aliguori, qemu-devel, afaerber
On Fri, 27 Apr 2012 15:21:18 -0500
Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> JSON numbers can be interpreted as either integers or floating point
> values depending on their representation. As a result, QMP input visitor
> might visit a QInt when it was expecting a QFloat, so add handling to
> account for this.
>
> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> ---
> qapi/qmp-input-visitor.c | 9 +++++++--
> 1 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c
> index 4cdc47d..bc91134 100644
> --- a/qapi/qmp-input-visitor.c
> +++ b/qapi/qmp-input-visitor.c
> @@ -246,13 +246,18 @@ static void qmp_input_type_number(Visitor *v, double *obj, const char *name,
> QmpInputVisitor *qiv = to_qiv(v);
> QObject *qobj = qmp_input_get_object(qiv, name);
>
> - if (!qobj || qobject_type(qobj) != QTYPE_QFLOAT) {
> + if (!qobj || (qobject_type(qobj) != QTYPE_QFLOAT &&
> + qobject_type(qobj) != QTYPE_QINT)) {
> error_set(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
> "double");
s/double/number
It's also important to note that migrate_set_downtime is (positively) affected
by this change. Today, it only accepts a double, eg.:
{ "execute": "migrate_set_downtime", "arguments": { "value": 1 } }
{
"error": {
"class": "InvalidParameterType",
"desc": "Invalid parameter type for 'value', expected: double",
"data": {
"name": "value",
"expected": "double"
}
}
}
That's a bug (as it's documented to accept a number) and this patch fixes it.
There's an interface change, but I think it won't cause problems in practice.
Please, fix the error message above and would be nice to get this (and patch
02/07) as a separate series for 1.1.
> return;
> }
>
> - *obj = qfloat_get_double(qobject_to_qfloat(qobj));
> + if (qobject_type(qobj) == QTYPE_QINT) {
> + *obj = qint_get_int(qobject_to_qint(qobj));
> + } else {
> + *obj = qfloat_get_double(qobject_to_qfloat(qobj));
> + }
> }
>
> static void qmp_input_start_optional(Visitor *v, bool *present,
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 4/7] qapi: String visitor, use %f represenation for floats
[not found] ` <1335558083-26196-5-git-send-email-mdroth@linux.vnet.ibm.com>
@ 2012-05-11 16:34 ` Luiz Capitulino
2012-05-11 17:32 ` Michael Roth
0 siblings, 1 reply; 14+ messages in thread
From: Luiz Capitulino @ 2012-05-11 16:34 UTC (permalink / raw)
To: Michael Roth; +Cc: pbonzini, aliguori, qemu-devel, afaerber
On Fri, 27 Apr 2012 15:21:20 -0500
Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> Currently string-output-visitor formats floats as %g, which is nice in
> that trailing 0's are automatically truncated, but otherwise this causes
> some issues:
>
> - it 6 uses significant figures instead of 6 decimal places, which
> means something like 155777.5 (which even has an exact floating point
> representation) will be rounded to 155778 when converted to a string.
>
> - output will be presented in scientific notation when the normalized
> form requires a 10^x multiplier. Not a huge deal, but arguably less
> readable for command-line arguments.
>
> - due to using sig figs instead of hard-defined decimal places, it
> fails a lot of the test-visitor-serialization unit tests for floats.
>
> Instead, let's just use %f, which is what the QJSON and the QMP visitors
> use.
>
> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> ---
> qapi/string-output-visitor.c | 2 +-
> tests/test-string-output-visitor.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/qapi/string-output-visitor.c b/qapi/string-output-visitor.c
> index 92b0305..34e525e 100644
> --- a/qapi/string-output-visitor.c
> +++ b/qapi/string-output-visitor.c
> @@ -52,7 +52,7 @@ static void print_type_number(Visitor *v, double *obj, const char *name,
> Error **errp)
> {
> StringOutputVisitor *sov = DO_UPCAST(StringOutputVisitor, visitor, v);
> - string_output_set(sov, g_strdup_printf("%g", *obj));
> + string_output_set(sov, g_strdup_printf("%f", *obj));
Doesn't look like a bug fix worth it for 1.1, am I wrong?
> }
>
> char *string_output_get_string(StringOutputVisitor *sov)
> diff --git a/tests/test-string-output-visitor.c b/tests/test-string-output-visitor.c
> index 22909b8..608f14a 100644
> --- a/tests/test-string-output-visitor.c
> +++ b/tests/test-string-output-visitor.c
> @@ -84,7 +84,7 @@ static void test_visitor_out_number(TestOutputVisitorData *data,
>
> str = string_output_get_string(data->sov);
> g_assert(str != NULL);
> - g_assert_cmpstr(str, ==, "3.14");
> + g_assert_cmpstr(str, ==, "3.140000");
> g_free(str);
> }
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 2/7] qapi: QMP input visitor, handle floats parsed as ints
2012-05-11 16:22 ` [Qemu-devel] [PATCH 2/7] qapi: QMP input visitor, handle floats parsed as ints Luiz Capitulino
@ 2012-05-11 17:04 ` Michael Roth
2012-05-11 17:16 ` Andreas Färber
2012-05-11 17:38 ` Luiz Capitulino
0 siblings, 2 replies; 14+ messages in thread
From: Michael Roth @ 2012-05-11 17:04 UTC (permalink / raw)
To: Luiz Capitulino; +Cc: pbonzini, aliguori, qemu-devel, afaerber
On Fri, May 11, 2012 at 01:22:33PM -0300, Luiz Capitulino wrote:
> On Fri, 27 Apr 2012 15:21:18 -0500
> Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
>
> > JSON numbers can be interpreted as either integers or floating point
> > values depending on their representation. As a result, QMP input visitor
> > might visit a QInt when it was expecting a QFloat, so add handling to
> > account for this.
> >
> > Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> > ---
> > qapi/qmp-input-visitor.c | 9 +++++++--
> > 1 files changed, 7 insertions(+), 2 deletions(-)
> >
> > diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c
> > index 4cdc47d..bc91134 100644
> > --- a/qapi/qmp-input-visitor.c
> > +++ b/qapi/qmp-input-visitor.c
> > @@ -246,13 +246,18 @@ static void qmp_input_type_number(Visitor *v, double *obj, const char *name,
> > QmpInputVisitor *qiv = to_qiv(v);
> > QObject *qobj = qmp_input_get_object(qiv, name);
> >
> > - if (!qobj || qobject_type(qobj) != QTYPE_QFLOAT) {
> > + if (!qobj || (qobject_type(qobj) != QTYPE_QFLOAT &&
> > + qobject_type(qobj) != QTYPE_QINT)) {
> > error_set(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
> > "double");
>
> s/double/number
>
> It's also important to note that migrate_set_downtime is (positively) affected
> by this change. Today, it only accepts a double, eg.:
>
> { "execute": "migrate_set_downtime", "arguments": { "value": 1 } }
> {
> "error": {
> "class": "InvalidParameterType",
> "desc": "Invalid parameter type for 'value', expected: double",
> "data": {
> "name": "value",
> "expected": "double"
> }
> }
> }
>
> That's a bug (as it's documented to accept a number) and this patch fixes it.
> There's an interface change, but I think it won't cause problems in practice.
>
> Please, fix the error message above and would be nice to get this (and patch
> 02/07) as a separate series for 1.1.
Hmm, this is kinda awkward because I don't think we can change it without
breaking any trees based off qom-next.
Since the error msg predates the bug fix (it just becomes more obviously
wrong as a result of the fix), can you pull these commits as is into your
QMP tree?
In the meantime I can send another patch, based on qom-next or qmp, that
fixes the error msg. We can then get all 3 into 1.1/master via QMP tree, and I
think qom-next should still merge cleanly back into master after 1.1
>
>
> > return;
> > }
> >
> > - *obj = qfloat_get_double(qobject_to_qfloat(qobj));
> > + if (qobject_type(qobj) == QTYPE_QINT) {
> > + *obj = qint_get_int(qobject_to_qint(qobj));
> > + } else {
> > + *obj = qfloat_get_double(qobject_to_qfloat(qobj));
> > + }
> > }
> >
> > static void qmp_input_start_optional(Visitor *v, bool *present,
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 2/7] qapi: QMP input visitor, handle floats parsed as ints
2012-05-11 17:04 ` Michael Roth
@ 2012-05-11 17:16 ` Andreas Färber
2012-05-11 17:34 ` Michael Roth
2012-05-11 17:38 ` Luiz Capitulino
1 sibling, 1 reply; 14+ messages in thread
From: Andreas Färber @ 2012-05-11 17:16 UTC (permalink / raw)
To: Michael Roth; +Cc: pbonzini, aliguori, qemu-devel, Luiz Capitulino
Am 11.05.2012 19:04, schrieb Michael Roth:
> On Fri, May 11, 2012 at 01:22:33PM -0300, Luiz Capitulino wrote:
>> On Fri, 27 Apr 2012 15:21:18 -0500
>> Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
>>
>>> JSON numbers can be interpreted as either integers or floating point
>>> values depending on their representation. As a result, QMP input visitor
>>> might visit a QInt when it was expecting a QFloat, so add handling to
>>> account for this.
>>>
>>> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
>>> ---
>>> qapi/qmp-input-visitor.c | 9 +++++++--
>>> 1 files changed, 7 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c
>>> index 4cdc47d..bc91134 100644
>>> --- a/qapi/qmp-input-visitor.c
>>> +++ b/qapi/qmp-input-visitor.c
>>> @@ -246,13 +246,18 @@ static void qmp_input_type_number(Visitor *v, double *obj, const char *name,
>>> QmpInputVisitor *qiv = to_qiv(v);
>>> QObject *qobj = qmp_input_get_object(qiv, name);
>>>
>>> - if (!qobj || qobject_type(qobj) != QTYPE_QFLOAT) {
>>> + if (!qobj || (qobject_type(qobj) != QTYPE_QFLOAT &&
>>> + qobject_type(qobj) != QTYPE_QINT)) {
>>> error_set(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
>>> "double");
>>
>> s/double/number
>>
>> It's also important to note that migrate_set_downtime is (positively) affected
>> by this change. Today, it only accepts a double, eg.:
>>
>> { "execute": "migrate_set_downtime", "arguments": { "value": 1 } }
>> {
>> "error": {
>> "class": "InvalidParameterType",
>> "desc": "Invalid parameter type for 'value', expected: double",
>> "data": {
>> "name": "value",
>> "expected": "double"
>> }
>> }
>> }
>>
>> That's a bug (as it's documented to accept a number) and this patch fixes it.
>> There's an interface change, but I think it won't cause problems in practice.
>>
>> Please, fix the error message above and would be nice to get this (and patch
>> 02/07) as a separate series for 1.1.
>
> Hmm, this is kinda awkward because I don't think we can change it without
> breaking any trees based off qom-next.
That's no problem at all, it is announced as rebasing and I have scripts
in place to pull and recursively rebase all my QOM branches.
For such a trivial textual change I can even fix it up manually. :)
Since Luiz is now taking care of this one I will simply drop it from my
qom-1.1 branch to avoid any confusion.
Andreas
> Since the error msg predates the bug fix (it just becomes more obviously
> wrong as a result of the fix), can you pull these commits as is into your
> QMP tree?
>
> In the meantime I can send another patch, based on qom-next or qmp, that
> fixes the error msg. We can then get all 3 into 1.1/master via QMP tree, and I
> think qom-next should still merge cleanly back into master after 1.1
>
>>
>>
>>> return;
>>> }
>>>
>>> - *obj = qfloat_get_double(qobject_to_qfloat(qobj));
>>> + if (qobject_type(qobj) == QTYPE_QINT) {
>>> + *obj = qint_get_int(qobject_to_qint(qobj));
>>> + } else {
>>> + *obj = qfloat_get_double(qobject_to_qfloat(qobj));
>>> + }
>>> }
>>>
>>> static void qmp_input_start_optional(Visitor *v, bool *present,
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 4/7] qapi: String visitor, use %f represenation for floats
2012-05-11 16:34 ` [Qemu-devel] [PATCH 4/7] qapi: String visitor, use %f represenation for floats Luiz Capitulino
@ 2012-05-11 17:32 ` Michael Roth
2012-05-11 17:47 ` Andreas Färber
0 siblings, 1 reply; 14+ messages in thread
From: Michael Roth @ 2012-05-11 17:32 UTC (permalink / raw)
To: Luiz Capitulino; +Cc: pbonzini, aliguori, qemu-devel, afaerber
On Fri, May 11, 2012 at 01:34:01PM -0300, Luiz Capitulino wrote:
> On Fri, 27 Apr 2012 15:21:20 -0500
> Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
>
> > Currently string-output-visitor formats floats as %g, which is nice in
> > that trailing 0's are automatically truncated, but otherwise this causes
> > some issues:
> >
> > - it 6 uses significant figures instead of 6 decimal places, which
> > means something like 155777.5 (which even has an exact floating point
> > representation) will be rounded to 155778 when converted to a string.
> >
> > - output will be presented in scientific notation when the normalized
> > form requires a 10^x multiplier. Not a huge deal, but arguably less
> > readable for command-line arguments.
> >
> > - due to using sig figs instead of hard-defined decimal places, it
> > fails a lot of the test-visitor-serialization unit tests for floats.
> >
> > Instead, let's just use %f, which is what the QJSON and the QMP visitors
> > use.
> >
> > Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> > ---
> > qapi/string-output-visitor.c | 2 +-
> > tests/test-string-output-visitor.c | 2 +-
> > 2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/qapi/string-output-visitor.c b/qapi/string-output-visitor.c
> > index 92b0305..34e525e 100644
> > --- a/qapi/string-output-visitor.c
> > +++ b/qapi/string-output-visitor.c
> > @@ -52,7 +52,7 @@ static void print_type_number(Visitor *v, double *obj, const char *name,
> > Error **errp)
> > {
> > StringOutputVisitor *sov = DO_UPCAST(StringOutputVisitor, visitor, v);
> > - string_output_set(sov, g_strdup_printf("%g", *obj));
> > + string_output_set(sov, g_strdup_printf("%f", *obj));
>
> Doesn't look like a bug fix worth it for 1.1, am I wrong?
Well, object_property_print() is the only string-output-visitor user,
and it's not currently used. I don't see this changing for 1.1, so this
can probably wait.
>
> > }
> >
> > char *string_output_get_string(StringOutputVisitor *sov)
> > diff --git a/tests/test-string-output-visitor.c b/tests/test-string-output-visitor.c
> > index 22909b8..608f14a 100644
> > --- a/tests/test-string-output-visitor.c
> > +++ b/tests/test-string-output-visitor.c
> > @@ -84,7 +84,7 @@ static void test_visitor_out_number(TestOutputVisitorData *data,
> >
> > str = string_output_get_string(data->sov);
> > g_assert(str != NULL);
> > - g_assert_cmpstr(str, ==, "3.14");
> > + g_assert_cmpstr(str, ==, "3.140000");
> > g_free(str);
> > }
> >
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 2/7] qapi: QMP input visitor, handle floats parsed as ints
2012-05-11 17:16 ` Andreas Färber
@ 2012-05-11 17:34 ` Michael Roth
0 siblings, 0 replies; 14+ messages in thread
From: Michael Roth @ 2012-05-11 17:34 UTC (permalink / raw)
To: Andreas Färber; +Cc: pbonzini, aliguori, qemu-devel, Luiz Capitulino
On Fri, May 11, 2012 at 07:16:18PM +0200, Andreas Färber wrote:
> Am 11.05.2012 19:04, schrieb Michael Roth:
> > On Fri, May 11, 2012 at 01:22:33PM -0300, Luiz Capitulino wrote:
> >> On Fri, 27 Apr 2012 15:21:18 -0500
> >> Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> >>
> >>> JSON numbers can be interpreted as either integers or floating point
> >>> values depending on their representation. As a result, QMP input visitor
> >>> might visit a QInt when it was expecting a QFloat, so add handling to
> >>> account for this.
> >>>
> >>> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> >>> ---
> >>> qapi/qmp-input-visitor.c | 9 +++++++--
> >>> 1 files changed, 7 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c
> >>> index 4cdc47d..bc91134 100644
> >>> --- a/qapi/qmp-input-visitor.c
> >>> +++ b/qapi/qmp-input-visitor.c
> >>> @@ -246,13 +246,18 @@ static void qmp_input_type_number(Visitor *v, double *obj, const char *name,
> >>> QmpInputVisitor *qiv = to_qiv(v);
> >>> QObject *qobj = qmp_input_get_object(qiv, name);
> >>>
> >>> - if (!qobj || qobject_type(qobj) != QTYPE_QFLOAT) {
> >>> + if (!qobj || (qobject_type(qobj) != QTYPE_QFLOAT &&
> >>> + qobject_type(qobj) != QTYPE_QINT)) {
> >>> error_set(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
> >>> "double");
> >>
> >> s/double/number
> >>
> >> It's also important to note that migrate_set_downtime is (positively) affected
> >> by this change. Today, it only accepts a double, eg.:
> >>
> >> { "execute": "migrate_set_downtime", "arguments": { "value": 1 } }
> >> {
> >> "error": {
> >> "class": "InvalidParameterType",
> >> "desc": "Invalid parameter type for 'value', expected: double",
> >> "data": {
> >> "name": "value",
> >> "expected": "double"
> >> }
> >> }
> >> }
> >>
> >> That's a bug (as it's documented to accept a number) and this patch fixes it.
> >> There's an interface change, but I think it won't cause problems in practice.
> >>
> >> Please, fix the error message above and would be nice to get this (and patch
> >> 02/07) as a separate series for 1.1.
> >
> > Hmm, this is kinda awkward because I don't think we can change it without
> > breaking any trees based off qom-next.
>
> That's no problem at all, it is announced as rebasing and I have scripts
> in place to pull and recursively rebase all my QOM branches.
>
> For such a trivial textual change I can even fix it up manually. :)
>
> Since Luiz is now taking care of this one I will simply drop it from my
> qom-1.1 branch to avoid any confusion.
That'll work, thanks.
Luiz, I'll send a separate patch shortly with the error msg fixed.
>
> Andreas
>
> > Since the error msg predates the bug fix (it just becomes more obviously
> > wrong as a result of the fix), can you pull these commits as is into your
> > QMP tree?
> >
> > In the meantime I can send another patch, based on qom-next or qmp, that
> > fixes the error msg. We can then get all 3 into 1.1/master via QMP tree, and I
> > think qom-next should still merge cleanly back into master after 1.1
> >
> >>
> >>
> >>> return;
> >>> }
> >>>
> >>> - *obj = qfloat_get_double(qobject_to_qfloat(qobj));
> >>> + if (qobject_type(qobj) == QTYPE_QINT) {
> >>> + *obj = qint_get_int(qobject_to_qint(qobj));
> >>> + } else {
> >>> + *obj = qfloat_get_double(qobject_to_qfloat(qobj));
> >>> + }
> >>> }
> >>>
> >>> static void qmp_input_start_optional(Visitor *v, bool *present,
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 2/7] qapi: QMP input visitor, handle floats parsed as ints
2012-05-11 17:04 ` Michael Roth
2012-05-11 17:16 ` Andreas Färber
@ 2012-05-11 17:38 ` Luiz Capitulino
1 sibling, 0 replies; 14+ messages in thread
From: Luiz Capitulino @ 2012-05-11 17:38 UTC (permalink / raw)
To: Michael Roth; +Cc: pbonzini, aliguori, qemu-devel, afaerber
On Fri, 11 May 2012 12:04:47 -0500
Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> On Fri, May 11, 2012 at 01:22:33PM -0300, Luiz Capitulino wrote:
> > On Fri, 27 Apr 2012 15:21:18 -0500
> > Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> >
> > > JSON numbers can be interpreted as either integers or floating point
> > > values depending on their representation. As a result, QMP input visitor
> > > might visit a QInt when it was expecting a QFloat, so add handling to
> > > account for this.
> > >
> > > Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> > > ---
> > > qapi/qmp-input-visitor.c | 9 +++++++--
> > > 1 files changed, 7 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c
> > > index 4cdc47d..bc91134 100644
> > > --- a/qapi/qmp-input-visitor.c
> > > +++ b/qapi/qmp-input-visitor.c
> > > @@ -246,13 +246,18 @@ static void qmp_input_type_number(Visitor *v, double *obj, const char *name,
> > > QmpInputVisitor *qiv = to_qiv(v);
> > > QObject *qobj = qmp_input_get_object(qiv, name);
> > >
> > > - if (!qobj || qobject_type(qobj) != QTYPE_QFLOAT) {
> > > + if (!qobj || (qobject_type(qobj) != QTYPE_QFLOAT &&
> > > + qobject_type(qobj) != QTYPE_QINT)) {
> > > error_set(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
> > > "double");
> >
> > s/double/number
> >
> > It's also important to note that migrate_set_downtime is (positively) affected
> > by this change. Today, it only accepts a double, eg.:
> >
> > { "execute": "migrate_set_downtime", "arguments": { "value": 1 } }
> > {
> > "error": {
> > "class": "InvalidParameterType",
> > "desc": "Invalid parameter type for 'value', expected: double",
> > "data": {
> > "name": "value",
> > "expected": "double"
> > }
> > }
> > }
> >
> > That's a bug (as it's documented to accept a number) and this patch fixes it.
> > There's an interface change, but I think it won't cause problems in practice.
> >
> > Please, fix the error message above and would be nice to get this (and patch
> > 02/07) as a separate series for 1.1.
>
> Hmm, this is kinda awkward because I don't think we can change it without
> breaking any trees based off qom-next.
>
> Since the error msg predates the bug fix (it just becomes more obviously
> wrong as a result of the fix), can you pull these commits as is into your
> QMP tree?
>
> In the meantime I can send another patch, based on qom-next or qmp, that
> fixes the error msg. We can then get all 3 into 1.1/master via QMP tree, and I
> think qom-next should still merge cleanly back into master after 1.1
I think Andreas answered you here (in the sense that it's ok to respin this
patch), but I also would like to add that patch 4/7 doesn't seem a bug fix
to me (at least not worth it for 1.1).
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 4/7] qapi: String visitor, use %f represenation for floats
2012-05-11 17:32 ` Michael Roth
@ 2012-05-11 17:47 ` Andreas Färber
0 siblings, 0 replies; 14+ messages in thread
From: Andreas Färber @ 2012-05-11 17:47 UTC (permalink / raw)
To: Michael Roth; +Cc: pbonzini, aliguori, qemu-devel, Luiz Capitulino
Am 11.05.2012 19:32, schrieb Michael Roth:
> On Fri, May 11, 2012 at 01:34:01PM -0300, Luiz Capitulino wrote:
>> On Fri, 27 Apr 2012 15:21:20 -0500
>> Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
>>
>>> Currently string-output-visitor formats floats as %g, which is nice in
>>> that trailing 0's are automatically truncated, but otherwise this causes
>>> some issues:
>>>
>>> - it 6 uses significant figures instead of 6 decimal places, which
>>> means something like 155777.5 (which even has an exact floating point
>>> representation) will be rounded to 155778 when converted to a string.
>>>
>>> - output will be presented in scientific notation when the normalized
>>> form requires a 10^x multiplier. Not a huge deal, but arguably less
>>> readable for command-line arguments.
>>>
>>> - due to using sig figs instead of hard-defined decimal places, it
>>> fails a lot of the test-visitor-serialization unit tests for floats.
>>>
>>> Instead, let's just use %f, which is what the QJSON and the QMP visitors
>>> use.
>>>
>>> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
>>> ---
>>> qapi/string-output-visitor.c | 2 +-
>>> tests/test-string-output-visitor.c | 2 +-
>>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/qapi/string-output-visitor.c b/qapi/string-output-visitor.c
>>> index 92b0305..34e525e 100644
>>> --- a/qapi/string-output-visitor.c
>>> +++ b/qapi/string-output-visitor.c
>>> @@ -52,7 +52,7 @@ static void print_type_number(Visitor *v, double *obj, const char *name,
>>> Error **errp)
>>> {
>>> StringOutputVisitor *sov = DO_UPCAST(StringOutputVisitor, visitor, v);
>>> - string_output_set(sov, g_strdup_printf("%g", *obj));
>>> + string_output_set(sov, g_strdup_printf("%f", *obj));
>>
>> Doesn't look like a bug fix worth it for 1.1, am I wrong?
>
> Well, object_property_print() is the only string-output-visitor user,
> and it's not currently used. I don't see this changing for 1.1, so this
> can probably wait.
Actually it might be in 1.1: there's a pending patch by Paolo to use
that for info qtree, where some properties were missing. My review
comment has been resolved, so I will queue that patch for 1.1 and next.
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2012-05-11 18:30 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <1335558083-26196-1-git-send-email-mdroth@linux.vnet.ibm.com>
[not found] ` <1335558083-26196-2-git-send-email-mdroth@linux.vnet.ibm.com>
2012-05-01 21:37 ` [Qemu-devel] [PATCH 1/7] qapi: add Visitor interfaces for uint*_t and int*_t Andreas Färber
[not found] ` <1335558083-26196-7-git-send-email-mdroth@linux.vnet.ibm.com>
2012-05-01 21:52 ` [Qemu-devel] [PATCH 6/7] qdev: use int32_t container for devfn property Andreas Färber
[not found] ` <1335558083-26196-8-git-send-email-mdroth@linux.vnet.ibm.com>
2012-05-01 21:54 ` [Qemu-devel] [PATCH 7/7] qdev: switch property accessors to fixed-width visitor interfaces Andreas Färber
2012-05-01 22:02 ` [Qemu-devel] [PATCH v5 0/7] add fixed-width visitors and serialization tests/fixes Andreas Färber
2012-05-11 1:22 ` Andreas Färber
2012-05-11 15:19 ` Michael Roth
[not found] ` <1335558083-26196-3-git-send-email-mdroth@linux.vnet.ibm.com>
2012-05-11 16:22 ` [Qemu-devel] [PATCH 2/7] qapi: QMP input visitor, handle floats parsed as ints Luiz Capitulino
2012-05-11 17:04 ` Michael Roth
2012-05-11 17:16 ` Andreas Färber
2012-05-11 17:34 ` Michael Roth
2012-05-11 17:38 ` Luiz Capitulino
[not found] ` <1335558083-26196-5-git-send-email-mdroth@linux.vnet.ibm.com>
2012-05-11 16:34 ` [Qemu-devel] [PATCH 4/7] qapi: String visitor, use %f represenation for floats Luiz Capitulino
2012-05-11 17:32 ` Michael Roth
2012-05-11 17:47 ` Andreas Färber
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.