From: "Marc-André Lureau" <marcandre.lureau@redhat.com>
To: qemu-devel@nongnu.org
Cc: eblake@redhat.com, berrange@redhat.com, armbru@redhat.com,
pbonzini@redhat.com,
"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [Qemu-devel] [PATCH v6 0/5] Simplify qobject refcount
Date: Thu, 19 Apr 2018 17:01:40 +0200 [thread overview]
Message-ID: <20180419150145.24795-1-marcandre.lureau@redhat.com> (raw)
Hi,
This series aims to get rid of the distinction between QObject, that
must use qobject_incref/qobject_decref and its various derived types
that have to use QINCREF/QDECREF. Instead, replace it with
qobject_ref/qobject_unref for all types.
v6: after Eric and Markus reviews
- remove double-underscore identifier in QOBJECT macro
- remove type cast in qobject_ref() in patch 4
- drop some now useless comment in code in patch 4
- update commit messages
- add some r-b tags from Eric
v5: after Markus review
- various commit message & comments update
- split the object_ref() patch to assert() on NULL, and return obj
- drop RFC from cover letter
v4:
- rename QObjectCommon->QObjectBase_
- add back qobject_ref_impl/qobject_unref_impl
- add extra parenthesis for qobject_ref() cast
- commit message tweaks
v3: after v2 review with Eric and Paolo
- fix clang ubsan warning when a null pointer is given to QOBJECT.
- add a patch to make qobject_ref() assert on null pointer, and return
the same pointer, simplifying some code.
v2:
- use the QObjectCommon base approach suggested by Paolo and Eric
- remove need for QEMU_GENERIC
Marc-André Lureau (5):
qobject: ensure base is at offset 0
qobject: use a QObjectBase_ struct
qobject: replace qobject_incref/QINCREF qobject_decref/QDECREF
qobject: modify qobject_ref() to return obj
qobject: modify qobject_ref() to assert on NULL
scripts/qapi/events.py | 2 +-
include/qapi/qmp/qbool.h | 2 +-
include/qapi/qmp/qdict.h | 2 +-
include/qapi/qmp/qlist.h | 2 +-
include/qapi/qmp/qnull.h | 5 +-
include/qapi/qmp/qnum.h | 2 +-
include/qapi/qmp/qobject.h | 83 +++++++++++++---------
include/qapi/qmp/qstring.h | 2 +-
block.c | 87 ++++++++++++-----------
block/blkdebug.c | 8 +--
block/blkverify.c | 8 +--
block/crypto.c | 4 +-
block/gluster.c | 4 +-
block/iscsi.c | 2 +-
block/nbd.c | 4 +-
block/nfs.c | 4 +-
block/null.c | 3 +-
block/nvme.c | 3 +-
block/parallels.c | 4 +-
block/qapi.c | 2 +-
block/qcow.c | 8 +--
block/qcow2.c | 8 +--
block/qed.c | 4 +-
block/quorum.c | 5 +-
block/rbd.c | 14 ++--
block/sheepdog.c | 12 ++--
block/snapshot.c | 4 +-
block/ssh.c | 4 +-
block/vdi.c | 2 +-
block/vhdx.c | 4 +-
block/vpc.c | 4 +-
block/vvfat.c | 2 +-
block/vxhs.c | 2 +-
blockdev.c | 16 ++---
hw/i386/acpi-build.c | 12 ++--
hw/ppc/spapr_drc.c | 2 +-
hw/usb/xen-usb.c | 4 +-
migration/migration.c | 4 +-
migration/qjson.c | 2 +-
monitor.c | 58 +++++++--------
qapi/qapi-dealloc-visitor.c | 4 +-
qapi/qmp-dispatch.c | 6 +-
qapi/qobject-input-visitor.c | 10 ++-
qapi/qobject-output-visitor.c | 11 ++-
qemu-img.c | 18 ++---
qemu-io.c | 6 +-
qga/main.c | 12 ++--
qmp.c | 4 +-
qobject/json-parser.c | 10 +--
qobject/qdict.c | 49 +++++--------
qobject/qjson.c | 2 +-
qobject/qlist.c | 4 +-
qobject/qobject.c | 21 ++++--
qom/object.c | 16 ++---
qom/object_interfaces.c | 2 +-
target/ppc/translate_init.c | 2 +-
target/s390x/cpu_models.c | 2 +-
tests/ahci-test.c | 6 +-
tests/check-qdict.c | 106 ++++++++++++++--------------
tests/check-qjson.c | 84 +++++++++++-----------
tests/check-qlist.c | 8 +--
tests/check-qlit.c | 10 +--
tests/check-qnull.c | 10 +--
tests/check-qnum.c | 28 ++++----
tests/check-qobject.c | 2 +-
tests/check-qstring.c | 10 +--
tests/cpu-plug-test.c | 4 +-
tests/device-introspect-test.c | 24 +++----
tests/drive_del-test.c | 4 +-
tests/libqos/libqos.c | 8 +--
tests/libqos/pci-pc.c | 2 +-
tests/libqtest.c | 24 +++----
tests/machine-none-test.c | 2 +-
tests/migration-test.c | 24 +++----
tests/numa-test.c | 16 ++---
tests/pvpanic-test.c | 2 +-
tests/q35-test.c | 2 +-
tests/qmp-test.c | 38 +++++-----
tests/qom-test.c | 8 +--
tests/tco-test.c | 12 ++--
tests/test-char.c | 2 +-
tests/test-keyval.c | 82 ++++++++++-----------
tests/test-netfilter.c | 26 +++----
tests/test-qemu-opts.c | 14 ++--
tests/test-qga.c | 76 ++++++++++----------
tests/test-qmp-cmds.c | 24 +++----
tests/test-qmp-event.c | 2 +-
tests/test-qobject-input-visitor.c | 10 +--
tests/test-qobject-output-visitor.c | 18 ++---
tests/test-visitor-serialization.c | 6 +-
tests/test-x86-cpuid-compat.c | 14 ++--
tests/tmp105-test.c | 4 +-
tests/vhost-user-test.c | 6 +-
tests/virtio-net-test.c | 6 +-
tests/vmgenid-test.c | 2 +-
tests/wdt_ib700-test.c | 14 ++--
util/keyval.c | 12 ++--
util/qemu-config.c | 4 +-
docs/devel/qapi-code-gen.txt | 2 +-
scripts/coccinelle/qobject.cocci | 8 +--
100 files changed, 675 insertions(+), 674 deletions(-)
--
2.17.0.253.g3dd125b46d
next reply other threads:[~2018-04-19 15:02 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-19 15:01 Marc-André Lureau [this message]
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
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=20180419150145.24795-1-marcandre.lureau@redhat.com \
--to=marcandre.lureau@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=eblake@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.