]> git.proxmox.com Git - mirror_qemu.git/commit
qapi: Fix array first used in a different module
authorMarkus Armbruster <armbru@redhat.com>
Fri, 1 Mar 2019 15:40:51 +0000 (16:40 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Tue, 5 Mar 2019 13:43:11 +0000 (14:43 +0100)
commit56a4689582433125d7042ba506a081e08dc264d4
tree014c10ef50a1c9ac64768c1091b443d8fdd7ba5d
parent5e12eb987b3299a5da4172fe744e91dbd00b6516
qapi: Fix array first used in a different module

We generally put implicitly defined types in whatever module triggered
their definition.  This is wrong for array types, as the included test
case demonstrates.  Let's have a closer look at it.

Type 'Status' is defined sub-sub-module.json.  Array type ['Status']
occurs in main module qapi-schema-test.json and in
include/sub-module.json.  The main module's use is first, so the array
type gets put into the main module.

The generated C headers define StatusList in qapi-types.h.  But
include/qapi-types-sub-module.h uses it without including
qapi-types.h.  Oops.

To fix that, put the array type into its element type's module.

Now StatusList gets generated into qapi-types-sub-module.h, which all
its users include.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20190301154051.23317-8-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
scripts/qapi/common.py
tests/qapi-schema/include/sub-module.json
tests/qapi-schema/qapi-schema-test.out