mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-01-11 05:35:35 +00:00
qapi: Document shortcoming with union 'data' branch
Add a FIXME to remind us to fully audit whether removing the 'void *data' branch of each qapi union type can be done safely. Backports commit ca56a822dd538017715345cbbe1f8829e0cc2742 from qemu
This commit is contained in:
parent
94b19608af
commit
6e85e420fb
|
@ -217,6 +217,14 @@ struct %(name)s
|
|||
''',
|
||||
discriminator_type_name=c_name(discriminator_type_name))
|
||||
|
||||
# FIXME: What purpose does data serve, besides preventing a union that
|
||||
# has a branch named 'data'? We use it in qapi-visit.py to decide
|
||||
# whether to bypass the switch statement if visiting the discriminator
|
||||
# failed; but since we 0-initialize structs, and cannot tell what
|
||||
# branch of the union is in use if the discriminator is invalid, there
|
||||
# should not be any data leaks even without a data pointer. Or, if
|
||||
# 'data' is merely added to guarantee we don't have an empty union,
|
||||
# shouldn't we enforce that at .json parse time?
|
||||
ret += mcgen('''
|
||||
union { /* union tag is @%(c_name)s */
|
||||
void *data;
|
||||
|
|
Loading…
Reference in a new issue