[libvirt] [PATCH] qemuDomainCleanupRemove: s/memmove/VIR_DELETE_ELEMENT_INPLACE/

Daniel P. Berrange berrange at redhat.com
Thu Oct 17 13:38:51 UTC 2013


On Thu, Oct 17, 2013 at 03:33:52PM +0200, Michal Privoznik wrote:
> The last argument of memmove is the amount of bytes to be moved. The
> amount is in Bytes. We are moving some void pointers around. However,
> since sizeof(void *) is not Byte on any architecture, we've got the
> arithmetic wrong.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/qemu/qemu_domain.c | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index d054d64..b8aec2d 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -2235,12 +2235,9 @@ qemuDomainCleanupRemove(virDomainObjPtr vm,
>      VIR_DEBUG("vm=%s, cb=%p", vm->def->name, cb);
>  
>      for (i = 0; i < priv->ncleanupCallbacks; i++) {
> -        if (priv->cleanupCallbacks[i] == cb) {
> -            memmove(priv->cleanupCallbacks + i,
> -                    priv->cleanupCallbacks + i + 1,
> -                    priv->ncleanupCallbacks - i - 1);
> -            priv->ncleanupCallbacks--;
> -        }
> +        if (priv->cleanupCallbacks[i] == cb)
> +            VIR_DELETE_ELEMENT_INPLACE(priv->cleanupCallbacks,
> +                                       i, priv->ncleanupCallbacks);
>      }
>  
>      VIR_SHRINK_N(priv->cleanupCallbacks,

ACK

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list