mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
qobject: Ensure base is at offset 0
All QObject types have the base QObject as their first field. This allows the simplification of qobject_to(). Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20180419150145.24795-2-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> [Commit message paragraph on type casts dropped, to avoid giving the impression type casting would be okay] Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
46cfbf13b0
commit
7ee9edfdb1
2 changed files with 11 additions and 3 deletions
|
@ -16,6 +16,15 @@
|
|||
#include "qapi/qmp/qlist.h"
|
||||
#include "qapi/qmp/qstring.h"
|
||||
|
||||
QEMU_BUILD_BUG_MSG(
|
||||
offsetof(QNull, base) != 0 ||
|
||||
offsetof(QNum, base) != 0 ||
|
||||
offsetof(QString, base) != 0 ||
|
||||
offsetof(QDict, base) != 0 ||
|
||||
offsetof(QList, base) != 0 ||
|
||||
offsetof(QBool, base) != 0,
|
||||
"base qobject must be at offset 0");
|
||||
|
||||
static void (*qdestroy[QTYPE__MAX])(QObject *) = {
|
||||
[QTYPE_NONE] = NULL, /* No such object exists */
|
||||
[QTYPE_QNULL] = NULL, /* qnull_ is indestructible */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue