On 04/23/2012 02:29 AM, Jean-Baptiste Rouault wrote:
On Sunday 22 April 2012 10:35:59 Matthias Bolte wrote:
> vboxArray is not castable to a COM item type. vboxArray is a
> wrapper around the XPCOM and MSCOM specific array handling.
>
> In this case we can avoid passing NULL as an empty array to
> IMachine::Delete by passing a dummy IMedium* array with a single
> NULL item.
> ---
>
> Jean-Baptiste, I can not reproduce the assertion you mentioned, or
> I don't know where to look for it. So could you verify that is patch
> avoids this assertion?
>
> + /* XPCOM doesn't like NULL as an array, even when
the array size
> is 0. + * Instead pass it a dummy array to avoid passing NULL. */
> + IMedium *array[] = { NULL };
> + machine->vtbl->Delete(machine, 0, array, &progress);
> # endif
> if (progress != NULL) {
> progress->vtbl->WaitForCompletion(progress, -1);
The patch is good, I don't get the assertion anymore.
Coupled with that functional test, I give my ACK to the code, as a much
nicer solution than my temporary build-breaker "fix" via a union hack.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org