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 :| -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list