On Thu, 25 Jul 2019 at 18:02, Dr. David Alan Gilbert <dgilb...@redhat.com> wrote: > > * Peter Maydell (peter.mayd...@linaro.org) wrote: > > gamepad_state::buttons is a pointer to an array of structs, > > not an array of structs, so should be declared in the vmstate > > with VMSTATE_STRUCT_VARRAY_POINTER_INT32; otherwise we > > corrupt memory on incoming migration. > > > > We bump the vmstate version field as the easiest way to > > deal with the migration break, since migration wouldn't have > > worked reliably before anyway. > > > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > > OK, it would be great to change num_buttons to uint32_t and make that a > UINT32 at some point; it's hard to press negative buttons.
Is there much benefit though? As an aside, I'm surprised also the macro doesn't complain that we said the num_buttons field is int32 but it's really "int"... arguably a different kind of missing type check. thanks -- PMM