mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-18 02:25:18 +00:00
vbox: Fix passing an empty IMedium* array to IMachine::Delete
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.
This commit is contained in:
parent
372a14c673
commit
3cf61dd5f0
@ -5294,11 +5294,10 @@ vboxDomainUndefineFlags(virDomainPtr dom, unsigned int flags)
|
|||||||
|
|
||||||
((IMachine_Delete)machine->vtbl->Delete)(machine, &safeArray, &progress);
|
((IMachine_Delete)machine->vtbl->Delete)(machine, &safeArray, &progress);
|
||||||
# else
|
# else
|
||||||
union {
|
/* XPCOM doesn't like NULL as an array, even when the array size is 0.
|
||||||
vboxArray array;
|
* Instead pass it a dummy array to avoid passing NULL. */
|
||||||
IMedium *medium;
|
IMedium *array[] = { NULL };
|
||||||
} u = { .array = VBOX_ARRAY_INITIALIZER };
|
machine->vtbl->Delete(machine, 0, array, &progress);
|
||||||
machine->vtbl->Delete(machine, 0, &u.medium, &progress);
|
|
||||||
# endif
|
# endif
|
||||||
if (progress != NULL) {
|
if (progress != NULL) {
|
||||||
progress->vtbl->WaitForCompletion(progress, -1);
|
progress->vtbl->WaitForCompletion(progress, -1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user