On Wed, Jul 24, 2013 at 03:41:17PM -0600, Eric Blake wrote:
On 07/24/2013 03:29 PM, Guido Günther wrote:
> since sizeof(size_t) != sizeof(long long) on 32bit archs.
>
> This unbreaks virdbustest which otherwise fails like:
>
> +++ b/tests/virdbustest.c
> @@ -195,7 +195,7 @@ static int testMessageArray(const void *args ATTRIBUTE_UNUSED)
> if (virDBusMessageEncode(msg,
> "sais",
> in_str1,
> - (long long)3, in_int32a, in_int32b, in_int32c,
> + (size_t)3, in_int32a, in_int32b, in_int32c,
This fix looks correct, but it's annoying that we have to cast the 'a'
length argument in every caller. I'm wondering if a better fix would be
to virDBusMessageEncode to take an 'int' instead of a 'size_t' arg for
"a" length; even though that is technically an arbitrary limitation on
64-bit platforms, I seriously doubt anyone plans to use dBus to send
more than 2G of objects.
The code requires an int already
narray = va_arg(args, int);
so both the (long long) and (size_t) casts are bogus. We can just
remove the cast completely.
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 :|