switch (dev->type) {
case VIR_DOMAIN_DEVICE_DISK:
- disk = g_steal_pointer(&dev->data.disk);
+ disk = dev->data.disk;
if (virDomainDiskIndexByName(vmdef, disk->dst, true) >= 0) {
virReportError(VIR_ERR_INVALID_ARG,
_("target %s already exists."), disk->dst);
}
virDomainDiskInsert(vmdef, disk);
/* vmdef has the pointer. Generic codes for vmdef will do all jobs */
+ dev->data.disk = NULL;
break;
case VIR_DOMAIN_DEVICE_CONTROLLER:
- controller = g_steal_pointer(&dev->data.controller);
+ controller = dev->data.controller;
if (controller->idx != -1 &&
virDomainControllerFind(vmdef, controller->type,
controller->idx) >= 0) {
}
virDomainControllerInsert(vmdef, controller);
+ dev->data.controller = NULL;
break;
case VIR_DOMAIN_DEVICE_NET:
- net = g_steal_pointer(&dev->data.net);
+ net = dev->data.net;
if (virDomainHasNet(vmdef, net)) {
virReportError(VIR_ERR_INVALID_ARG,
_("network device with mac %s already exists"),
}
if (virDomainNetInsert(vmdef, net))
return -1;
+ dev->data.net = NULL;
break;
case VIR_DOMAIN_DEVICE_HOSTDEV:
switch (dev->type) {
case VIR_DOMAIN_DEVICE_DISK:
- disk = g_steal_pointer(&dev->data.disk);
+ disk = dev->data.disk;
if (virDomainDiskIndexByName(vmdef, disk->dst, true) >= 0) {
virReportError(VIR_ERR_INVALID_ARG,
_("target %s already exists."), disk->dst);
}
virDomainDiskInsert(vmdef, disk);
/* vmdef has the pointer. Generic codes for vmdef will do all jobs */
+ dev->data.disk = NULL;
ret = 0;
break;
case VIR_DOMAIN_DEVICE_NET:
- net = g_steal_pointer(&dev->data.net);
+ net = dev->data.net;
if (virDomainNetInsert(vmdef, net) < 0)
return -1;
+ dev->data.net = NULL;
ret = 0;
break;
case VIR_DOMAIN_DEVICE_HOSTDEV:
- hostdev = g_steal_pointer(&dev->data.hostdev);
+ hostdev = dev->data.hostdev;
if (virDomainHostdevFind(vmdef, hostdev, NULL) >= 0) {
virReportError(VIR_ERR_INVALID_ARG, "%s",
_("device is already in the domain configuration"));
}
if (virDomainHostdevInsert(vmdef, hostdev) < 0)
return -1;
+ dev->data.hostdev = NULL;
ret = 0;
break;
switch (dev->type) {
case VIR_DOMAIN_DEVICE_NET:
- net = g_steal_pointer(&dev->data.net);
+ net = dev->data.net;
if ((idx = virDomainNetFindIdx(vmdef, net)) < 0)
return -1;
return -1;
virDomainNetDefFree(oldDev.data.net);
+ dev->data.net = NULL;
ret = 0;
break;
switch ((virDomainDeviceType)dev->type) {
case VIR_DOMAIN_DEVICE_DISK:
- disk = g_steal_pointer(&dev->data.disk);
+ disk = dev->data.disk;
if (virDomainDiskIndexByName(vmdef, disk->dst, true) >= 0) {
virReportError(VIR_ERR_OPERATION_INVALID,
_("target %s already exists"), disk->dst);
return -1;
virDomainDiskInsert(vmdef, disk);
/* vmdef has the pointer. Generic codes for vmdef will do all jobs */
+ dev->data.disk = NULL;
break;
case VIR_DOMAIN_DEVICE_NET:
- net = g_steal_pointer(&dev->data.net);
+ net = dev->data.net;
if (virDomainNetInsert(vmdef, net))
return -1;
+ dev->data.net = NULL;
break;
case VIR_DOMAIN_DEVICE_SOUND:
- sound = g_steal_pointer(&dev->data.sound);
+ sound = dev->data.sound;
if (VIR_APPEND_ELEMENT(vmdef->sounds, vmdef->nsounds, sound) < 0)
return -1;
+ dev->data.sound = NULL;
break;
case VIR_DOMAIN_DEVICE_HOSTDEV:
- hostdev = g_steal_pointer(&dev->data.hostdev);
+ hostdev = dev->data.hostdev;
if (virDomainHostdevFind(vmdef, hostdev, NULL) >= 0) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("device is already in the domain configuration"));
}
if (virDomainHostdevInsert(vmdef, hostdev))
return -1;
+ dev->data.hostdev = NULL;
break;
case VIR_DOMAIN_DEVICE_LEASE:
- lease = g_steal_pointer(&dev->data.lease);
+ lease = dev->data.lease;
if (virDomainLeaseIndex(vmdef, lease) >= 0) {
virReportError(VIR_ERR_OPERATION_INVALID,
_("Lease %s in lockspace %s already exists"),
virDomainLeaseInsert(vmdef, lease);
/* vmdef has the pointer. Generic codes for vmdef will do all jobs */
+ dev->data.lease = NULL;
break;
case VIR_DOMAIN_DEVICE_CONTROLLER:
- controller = g_steal_pointer(&dev->data.controller);
+ controller = dev->data.controller;
if (controller->idx != -1 &&
virDomainControllerFind(vmdef, controller->type,
controller->idx) >= 0) {
}
virDomainControllerInsert(vmdef, controller);
+ dev->data.controller = NULL;
break;
break;
case VIR_DOMAIN_DEVICE_FS:
- fs = g_steal_pointer(&dev->data.fs);
+ fs = dev->data.fs;
if (virDomainFSIndexByName(vmdef, fs->dst) >= 0) {
virReportError(VIR_ERR_OPERATION_INVALID,
"%s", _("Target already exists"));
if (virDomainFSInsert(vmdef, fs) < 0)
return -1;
+ dev->data.fs = NULL;
break;
case VIR_DOMAIN_DEVICE_RNG:
break;
case VIR_DOMAIN_DEVICE_REDIRDEV:
- redirdev = g_steal_pointer(&dev->data.redirdev);
+ redirdev = dev->data.redirdev;
if (VIR_APPEND_ELEMENT(vmdef->redirdevs, vmdef->nredirdevs, redirdev) < 0)
return -1;
+ dev->data.redirdev = NULL;
break;
case VIR_DOMAIN_DEVICE_SHMEM:
- shmem = g_steal_pointer(&dev->data.shmem);
+ shmem = dev->data.shmem;
if (virDomainShmemDefFind(vmdef, shmem) >= 0) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("device is already in the domain configuration"));
}
if (virDomainShmemDefInsert(vmdef, shmem) < 0)
return -1;
+ dev->data.shmem = NULL;
break;
case VIR_DOMAIN_DEVICE_WATCHDOG:
switch ((virDomainDeviceType)dev->type) {
case VIR_DOMAIN_DEVICE_DISK:
- newDisk = g_steal_pointer(&dev->data.disk);
+ newDisk = dev->data.disk;
if ((pos = virDomainDiskIndexByName(vmdef, newDisk->dst, false)) < 0) {
virReportError(VIR_ERR_INVALID_ARG,
_("target %s doesn't exist."), newDisk->dst);
virDomainDiskDefFree(vmdef->disks[pos]);
vmdef->disks[pos] = newDisk;
+ dev->data.disk = NULL;
break;
case VIR_DOMAIN_DEVICE_GRAPHICS:
- newGraphics = g_steal_pointer(&dev->data.graphics);
+ newGraphics = dev->data.graphics;
pos = qemuDomainFindGraphicsIndex(vmdef, newGraphics);
if (pos < 0) {
virReportError(VIR_ERR_INVALID_ARG,
virDomainGraphicsDefFree(vmdef->graphics[pos]);
vmdef->graphics[pos] = newGraphics;
+ dev->data.graphics = NULL;
break;
case VIR_DOMAIN_DEVICE_NET:
- net = g_steal_pointer(&dev->data.net);
+ net = dev->data.net;
if ((pos = virDomainNetFindIdx(vmdef, net)) < 0)
return -1;
return -1;
virDomainNetDefFree(oldDev.data.net);
+ dev->data.net = NULL;
break;
case VIR_DOMAIN_DEVICE_FS: