[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL v3 00/24] block: Command line option -blockdev
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PULL v3 00/24] block: Command line option -blockdev |
Date: |
Tue, 07 Mar 2017 16:05:58 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) |
Peter Maydell <address@hidden> writes:
> On 7 March 2017 at 07:20, Markus Armbruster <address@hidden> wrote:
>> Actually, the command line option is the least part of this series.
>> Its bulk is about building infrastructure and getting errors out of
>> the JSON parser.
>>
>> The design of the command line interface was discussed here:
>> Subject: Non-flat command line option argument syntax
>> Message-ID: <address@hidden>
>> https://lists.gnu.org/archive/html/qemu-devel/2017-02/msg00555.html
>>
>> v3: A few commit messages touched up, code unchanged
>>
>> The following changes since commit fbddc2e5608eb655493253d080598375db61a748:
>>
>> Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2017-02-28'
>> into staging (2017-03-06 10:18:33 +0000)
>>
>> are available in the git repository at:
>>
>> git://repo.or.cz/qemu/armbru.git tags/pull-block-2017-02-28-v3
>>
>> for you to fetch changes up to de479f01438d974100ac9ec10ab82c2ee1ad124f:
>>
>> keyval: Support lists (2017-03-07 08:15:18 +0100)
>
> The clang sanitizer has a complaint about your new test:
>
> GTESTER tests/test-keyval
> /home/petmay01/linaro/qemu-for-merges/util/keyval.c:129:15: runtime
> error: member access within null pointer of type 'QString' (aka
> 'struct QString')
>
> which is the line:
> new = QOBJECT(value) ?: QOBJECT(qdict_new());
>
> This is because QOBJECT is defined as:
>
> #define QOBJECT(obj) (&(obj)->base)
>
> and so it doesn't have the "if you pass in NULL you get NULL"
> semantics that OBJECT() and all the QOM object typecast
> macros do.
QOBJECT() returns its argument, so this is rather pedantic. However,
placating the sanitize isn't too onerous; this should do:
new = value ? QOBJECT(value) : QOBJECT(qdict_new());
> (As an aside, it's rather confusing to have a QObject
> whose header claims it's part of the "QEMU Object Model"
> which is completely different from the QOM Object...)
Hey, QObject claimed the name first!
Seriously, I hate the name clash, too. Rewording the comment is easy
enough. Even better would be renaming QObject, but that's a lot of
churn.
- [Qemu-devel] [PULL v3 13/24] block: More detailed syntax error reporting for JSON filenames, (continued)
- [Qemu-devel] [PULL v3 13/24] block: More detailed syntax error reporting for JSON filenames, Markus Armbruster, 2017/03/07
- [Qemu-devel] [PULL v3 21/24] block: Initial implementation of -blockdev, Markus Armbruster, 2017/03/07
- [Qemu-devel] [PULL v3 08/24] qobject: Propagate parse errors through qobject_from_jsonv(), Markus Armbruster, 2017/03/07
- [Qemu-devel] [PULL v3 14/24] check-qjson: Test errors from qobject_from_json(), Markus Armbruster, 2017/03/07
- [Qemu-devel] [PULL v3 24/24] keyval: Support lists, Markus Armbruster, 2017/03/07
- [Qemu-devel] [PULL v3 17/24] test-qapi-util: New, covering qapi/qapi-util.c, Markus Armbruster, 2017/03/07
- [Qemu-devel] [PULL v3 02/24] tests: Fix gcov-files-test-qemu-opts-y, gcov-files-test-logging-y, Markus Armbruster, 2017/03/07
- [Qemu-devel] [PULL v3 19/24] keyval: Restrict key components to valid QAPI names, Markus Armbruster, 2017/03/07
- Re: [Qemu-devel] [PULL v3 00/24] block: Command line option -blockdev, no-reply, 2017/03/07
- Re: [Qemu-devel] [PULL v3 00/24] block: Command line option -blockdev, Peter Maydell, 2017/03/07
- Re: [Qemu-devel] [PULL v3 00/24] block: Command line option -blockdev,
Markus Armbruster <=