virQEMUCaps *virQEMUCapsNewCopy(virQEMUCaps *qemuCaps)
{
- virQEMUCaps *ret = virQEMUCapsNewBinary(qemuCaps->binary);
+ g_autoptr(virQEMUCaps) ret = virQEMUCapsNewBinary(qemuCaps->binary);
size_t i;
if (!ret)
if (virQEMUCapsAccelCopy(&ret->kvm, &qemuCaps->kvm) < 0 ||
virQEMUCapsAccelCopy(&ret->tcg, &qemuCaps->tcg) < 0)
- goto error;
+ return NULL;
ret->gicCapabilities = g_new0(virGICCapability, qemuCaps->ngicCapabilities);
ret->ngicCapabilities = qemuCaps->ngicCapabilities;
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SEV_GUEST) &&
virQEMUCapsSEVInfoCopy(&ret->sevCapabilities,
qemuCaps->sevCapabilities) < 0)
- goto error;
-
- return ret;
+ return NULL;
- error:
- virObjectUnref(ret);
- return NULL;
+ return g_steal_pointer(&ret);
}