[libvirt] [PATCH] nss: Simplify move_and_align
Jiri Denemark
jdenemar at redhat.com
Thu Apr 7 07:56:26 UTC 2016
On Thu, Apr 07, 2016 at 09:31:06 +0200, Michal Privoznik wrote:
> What this function does can be written much shorter.
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> tools/nss/libvirt_nss.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/tools/nss/libvirt_nss.c b/tools/nss/libvirt_nss.c
> index de34baf..587b171 100644
> --- a/tools/nss/libvirt_nss.c
> +++ b/tools/nss/libvirt_nss.c
> @@ -263,12 +263,10 @@ move_and_align(void *buf, size_t len, size_t *idx)
> char *buffer = buf;
> size_t move = LIBVIRT_ALIGN(len);
>
> - if (!idx)
> - return buffer + move;
> + if (idx)
> + *idx += move;
>
> - *idx += move;
> -
> - return buffer + *idx;
> + return buffer + move;
> }
But it doesn't seem to be equivalent... The !idx case remains the same,
but in the idx case:
old code:
*idx += move;
return buffer + *idx;
new code:
*idx += move;
return buffer + move;
I guess you need to do something like
if (idx) {
buffer += *idx;
*idx += move;
}
return buffer + move;
Jirka
More information about the libvir-list
mailing list