|
From: | Eric Blake |
Subject: | Re: [Qemu-devel] [PATCH v3 2/4] qobject: introduce QObjectCommon |
Date: | Thu, 29 Mar 2018 11:15:18 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
On 03/29/2018 10:48 AM, Marc-André Lureau wrote:
By moving the common fields to a QObjectCommon, QObject can be a type which also has a 'base' QObjectCommon field. This allows to write a generic QOBJECT() macro that will work with any QObject type, including QObject itself. The container_of() macro ensures that the object to cast has a QObjectCommon base field, give me some type safety guarantees. However, for it to work properly, all QObject types must have 'base' at offset 0 (which is ensured by static checking from previous patch)
Commit message should mention the rationale you gave in v2 of NOT using a typedef for QObjectCommon (which was intentional so as to minimize the chance that the type gets abused). We could even go so far as to name it QObject_, with trailing underscore, rather than QObjectCommon, to make it obvious it is not for normal use.
Signed-off-by: Marc-André Lureau <address@hidden> ---
-- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
[Prev in Thread] | Current Thread | [Next in Thread] |