Hi ----- Original Message ----- > PATCH 01-41 look ready with minor tweaks. I chatted with Marc-André, > and he asked me to apply them myself. You can find the result at > https://repo.or.cz/qemu/armbru.git in branch qapi-next. Marc-André, > please give it a quick look-over. If it's good, I'll post a pull > request later today.
Looks good to me, thanks a lot! > > PATCH 42 is RFC. I'd like to give PATCH 43 a bit more time on the list. > > Incremental diff for your convenience: > > diff --git a/blockdev.c b/blockdev.c > index 154c95d..4009dd9 100644 > --- a/blockdev.c > +++ b/blockdev.c > @@ -335,10 +335,9 @@ static bool parse_stats_intervals(BlockAcctStats *stats, > QList *intervals, > } > > case QTYPE_QNUM: { > - int64_t length; > + int64_t length = qnum_get_int(qobject_to_qnum(entry->value)); > > - if (qnum_get_try_int(qobject_to_qnum(entry->value), &length) && > - length > 0 && length <= UINT_MAX) { > + if (length > 0 && length <= UINT_MAX) { > block_acct_add_interval(stats, (unsigned) length); > } else { > error_setg(errp, "Invalid interval length: %" PRId64, > length); > diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c > index a8f09c1..68cd653 100644 > --- a/hw/core/qdev-properties.c > +++ b/hw/core/qdev-properties.c > @@ -71,7 +71,7 @@ static void set_enum(Object *obj, Visitor *v, const char > *name, void *opaque, > > static void set_default_value_enum(Object *obj, const Property *prop) > { > - object_property_set_str(obj, prop->info->enum_table[prop->defval.u], > + object_property_set_str(obj, prop->info->enum_table[prop->defval.i], > prop->name, &error_abort); > } > > diff --git a/tests/test-qobject-input-visitor.c > b/tests/test-qobject-input-visitor.c > index 3bcdb9a..34bab8a 100644 > --- a/tests/test-qobject-input-visitor.c > +++ b/tests/test-qobject-input-visitor.c > @@ -152,6 +152,7 @@ static void test_visitor_in_uint(TestInputVisitorData > *data, > g_assert_cmpuint(res, ==, 18446744073709551574U); > > visit_type_number(v, NULL, &dbl, &error_abort); > + g_assert_cmpfloat(dbl, ==, 18446744073709552000.0); > } > > static void test_visitor_in_int_overflow(TestInputVisitorData *data, > @@ -161,9 +162,10 @@ static void > test_visitor_in_int_overflow(TestInputVisitorData *data, > Error *err = NULL; > Visitor *v; > > - /* this will overflow a QNUM_I64, so should be deserialized into a > + /* > + * This will overflow a QNUM_I64, so should be deserialized into a > * QNUM_DOUBLE field instead, leading to an error if we pass it to > - * visit_type_int. confirm this. > + * visit_type_int(). Confirm this. > */ > v = visitor_input_test_init(data, "%f", DBL_MAX); > > diff --git a/tests/test-qobject-output-visitor.c > b/tests/test-qobject-output-visitor.c > index d23c8eb..749c540 100644 > --- a/tests/test-qobject-output-visitor.c > +++ b/tests/test-qobject-output-visitor.c > @@ -609,11 +609,13 @@ static void check_native_list(QObject *qobj, > for (i = 0; i < 32; i++) { > QObject *tmp; > QNum *qvalue; > + uint64_t val; > > tmp = qlist_peek(qlist); > g_assert(tmp); > qvalue = qobject_to_qnum(tmp); > - g_assert_cmpuint(qnum_get_uint(qvalue), ==, i); > + g_assert(qnum_get_try_uint(qvalue, &val)); > + g_assert_cmpint(val, ==, i); > qobject_decref(qlist_pop(qlist)); > } > break; >