[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v2 6/8] migration/vmstate: split up vmstate_
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [RFC PATCH v2 6/8] migration/vmstate: split up vmstate_base_addr |
Date: |
Fri, 16 Dec 2016 19:47:16 +0000 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
* Halil Pasic (address@hidden) 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 / address@hidden / Manchester, UK