All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org, pbonzini@redhat.com
Subject: Re: [Qemu-devel] [PATCH v6 2/5] qobject: use a QObjectBase_ struct
Date: Fri, 27 Apr 2018 10:24:08 +0200	[thread overview]
Message-ID: <87po2lqcpj.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20180419150145.24795-3-marcandre.lureau@redhat.com> ("Marc-André Lureau"'s message of "Thu, 19 Apr 2018 17:01:42 +0200")

Marc-André Lureau <marcandre.lureau@redhat.com> writes:

> By moving the base fields to a QObjectBase_, QObject can be a type
> which also has a 'base' field. This allows writing 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
> QObjectBase_ base field, giving some type safety guarantees. QObject
> must have no members but QObjectBase_ base, or else QOBJECT() breaks.
>
> QObjectBase_ is not a typedef and uses a trailing underscore to make
> it obvious it is not for normal use and to avoid potential abuse.

The omission of typedef to signal "internal use" is unusual in QEMU.
Doesn't bother *me*, but then I wouldn't typedef any struct or union if
consistency with the bulk of QEMU's code didn't demand it.

I can add the typedef and update the commit message if desired.

> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>

I would've been tempted to try an unnamed field, but (1) that might've
been too clever, and (2) this patch exists and works.

With or without the typedef:
Reviewed-by: Markus Armbruster <armbru@redhat.com>

  reply	other threads:[~2018-04-27  8:24 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-19 15:01 [Qemu-devel] [PATCH v6 0/5] Simplify qobject refcount Marc-André Lureau
2018-04-19 15:01 ` [Qemu-devel] [PATCH v6 1/5] qobject: ensure base is at offset 0 Marc-André Lureau
2018-04-19 15:20   ` Eric Blake
2018-04-19 15:23     ` Marc-André Lureau
2018-04-24 12:18       ` Markus Armbruster
2018-04-24 12:34         ` Peter Maydell
2018-04-24 15:24           ` Markus Armbruster
2018-04-26 14:50         ` Markus Armbruster
2018-04-27  8:14   ` Markus Armbruster
2018-04-19 15:01 ` [Qemu-devel] [PATCH v6 2/5] qobject: use a QObjectBase_ struct Marc-André Lureau
2018-04-27  8:24   ` Markus Armbruster [this message]
2018-04-27 15:29     ` Eric Blake
2018-04-19 15:01 ` [Qemu-devel] [PATCH v6 3/5] qobject: replace qobject_incref/QINCREF qobject_decref/QDECREF Marc-André Lureau
2018-04-19 15:27   ` Eric Blake
2018-04-27  8:59     ` Markus Armbruster
2018-04-19 15:01 ` [Qemu-devel] [PATCH v6 4/5] qobject: modify qobject_ref() to return obj Marc-André Lureau
2018-04-19 15:32   ` Eric Blake
2018-04-27 11:42     ` Markus Armbruster
2018-05-02 13:28       ` Eric Blake
2018-05-02 14:14         ` Markus Armbruster
2018-04-27  8:50   ` Markus Armbruster
2018-04-19 15:01 ` [Qemu-devel] [PATCH v6 5/5] qobject: modify qobject_ref() to assert on NULL Marc-André Lureau
2018-04-19 15:39   ` Eric Blake
2018-04-19 16:04     ` Marc-André Lureau
2018-04-19 15:45 ` [Qemu-devel] [PATCH v6 0/5] Simplify qobject refcount Eric Blake
2018-04-19 16:02   ` Marc-André Lureau
2018-05-02  8:31 ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87po2lqcpj.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.