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? > > src/vbox/vbox_tmpl.c | 9 ++++----- > 1 files changed, 4 insertions(+), 5 deletions(-) > > diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c > index 57c18a4..4b0ee2e 100644 > --- a/src/vbox/vbox_tmpl.c > +++ b/src/vbox/vbox_tmpl.c > @@ -5294,11 +5294,10 @@ vboxDomainUndefineFlags(virDomainPtr dom, unsigned > int flags) > > ((IMachine_Delete)machine->vtbl->Delete)(machine, &safeArray, > &progress); # else > - union { > - vboxArray array; > - IMedium *medium; > - } u = { .array = VBOX_ARRAY_INITIALIZER }; > - machine->vtbl->Delete(machine, 0, &u.medium, &progress); > + /* 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. -- Jean-Baptiste ROUAULT Ingénieur R&D - diateam : Architectes de l'information Phone : +33 (0)2 98 050 050 Fax : +33 (0)2 98 050 051 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list