* Halil Pasic (pa...@linux.vnet.ibm.com) wrote: > > > On 12/15/2016 02:29 PM, Dr. David Alan Gilbert wrote: > >> + vmstate_handle_alloc(first_elem, field, opaque); > >> + if (field->flags & VMS_POINTER) { > >> + first_elem = *(void **)first_elem; > >> + assert(first_elem); > >> + } > >> for (i = 0; i < n_elems; i++) { > >> void *curr_elem = first_elem + size * i; > >> > >> @@ -310,12 +301,16 @@ void vmstate_save_state(QEMUFile *f, const > >> VMStateDescription *vmsd, > >> while (field->name) { > >> if (!field->field_exists || > >> field->field_exists(opaque, vmsd->version_id)) { > >> - void *first_elem = vmstate_base_addr(opaque, field, false); > >> + void *first_elem = opaque + field->offset; > >> int i, n_elems = vmstate_n_elems(opaque, field); > >> int size = vmstate_size(opaque, field); > >> int64_t old_offset, written_bytes; > >> QJSON *vmdesc_loop = vmdesc; > >> > >> + if (field->flags & VMS_POINTER) { > >> + first_elem = *(void **)first_elem; > >> + assert(first_elem); > > Can you make that assert(first_elem || !n_elems) please. > > and same above. > > > > Dave > > Good catch! This could indeed be some dynamic length > thing with 0 elements. > > I'm not sure if I'm going to respin this year though.
Well I'm not going to review it this year if you do :-) So have a good new year and lets see to it then! Dave > Halil > > > > >> + } > >> for (i = 0; i < n_elems; i++) { > >> void *curr_elem = first_elem + size * i; > >> > >> -- > >> 2.8.4 > >> > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK