diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 07404c6fb0f2f6a20cde497e6ab560ed2d78ef2e..c6d36e0cb53873226398a23d7a6455a3ed5b98b4 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -227,7 +227,7 @@ virCPUDefStealModel(virCPUDefPtr dst, virCPUDefPtr virCPUDefCopyWithoutModel(const virCPUDef *cpu) { - virCPUDefPtr copy; + g_autoptr(virCPUDef) copy = NULL; if (!cpu) return NULL; @@ -246,42 +246,34 @@ virCPUDefCopyWithoutModel(const virCPUDef *cpu) if (cpu->cache) { if (VIR_ALLOC(copy->cache) < 0) - goto error; + return NULL; *copy->cache = *cpu->cache; } if (cpu->tsc) { if (VIR_ALLOC(copy->tsc) < 0) - goto error; + return NULL; *copy->tsc = *cpu->tsc; } - return copy; - - error: - virCPUDefFree(copy); - return NULL; + return g_steal_pointer(©); } virCPUDefPtr virCPUDefCopy(const virCPUDef *cpu) { - virCPUDefPtr copy; + g_autoptr(virCPUDef) copy = NULL; if (!(copy = virCPUDefCopyWithoutModel(cpu))) return NULL; if (virCPUDefCopyModel(copy, cpu, false) < 0) - goto error; - - return copy; + return NULL; - error: - virCPUDefFree(copy); - return NULL; + return g_steal_pointer(©); }