[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC 0/2] QMP command qom-new
From: |
Anthony Liguori |
Subject: |
Re: [Qemu-devel] [PATCH RFC 0/2] QMP command qom-new |
Date: |
Thu, 24 May 2012 09:35:24 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1 |
On 05/24/2012 09:23 AM, Peter Maydell wrote:
On 24 May 2012 15:10, Anthony Liguori<address@hidden> wrote:
On 05/24/2012 08:18 AM, Peter Maydell wrote:
Last time I was trying to argue for keeping the "create, set properties,
realize" interface for devices/objects as simple as possible you wanted
it to have an error-return interface rather than asserting...
You need to be more specific than that I'm afraid..
https://lists.gnu.org/archive/html/qemu-devel/2012-05/msg00079.html
Ah, okay. So you're taking those comments a bit out of context.
The right way to use object_new() is:
Object *foo = object_new(TYPE_E1000);
If you mistype TYPE_E1000, you should get a compile failure. There's basically
no way that this is going to fail unless you do:
Object *foo = object_new("garbage");
There's no point in adding error handling here because if you make this much of
a mistake, then you're likely not going to handle errors properly. That's
entirely different from:
connect(foo, "baz", bar, "caz");
It's extremely likely that you'll mistype one of the property names. We have
existence proofs in the three with qdev_prop_set*(). This can be deep within
the bowels of device initialization and assert()'ing QEMU doing a device_add is
a pretty nasty thing to do. There's also type errors that can occur here that
are even more likely to happen by accident.
Contrast that with:
foo->baz = &bar->caz;
If you mistype the property names or mess up the types, you will get a compile
error.
Regards,
Anthony Liguori
-- PMM
- Re: [Qemu-devel] [PATCH RFC 2/2] qmp: New command qom-new, (continued)
[Qemu-devel] [PATCH RFC 1/2] qom: Give type_get_by_name() external linkage, Markus Armbruster, 2012/05/24
Re: [Qemu-devel] [PATCH RFC 0/2] QMP command qom-new, Andreas Färber, 2012/05/24
Re: [Qemu-devel] [PATCH RFC 0/2] QMP command qom-new, Markus Armbruster, 2012/05/24