qemu: block: Add and use AUTOPTR func for qemuBlockNodeNameBackingChainData

This is a locally used helper struct but we can make use of automatic
freeing for it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2019-04-04 11:18:07 +02:00
parent 7141bdd5bf
commit 6542fbe2d5

View File

@ -88,6 +88,9 @@ qemuBlockNodeNameBackingChainDataFree(qemuBlockNodeNameBackingChainDataPtr data)
VIR_FREE(data); VIR_FREE(data);
} }
VIR_DEFINE_AUTOPTR_FUNC(qemuBlockNodeNameBackingChainData,
qemuBlockNodeNameBackingChainDataFree);
static void static void
qemuBlockNodeNameBackingChainDataHashEntryFree(void *opaque, qemuBlockNodeNameBackingChainDataHashEntryFree(void *opaque,
@ -128,7 +131,7 @@ qemuBlockNodeNameGetBackingChainBacking(virJSONValuePtr next,
virHashTablePtr nodenamestable, virHashTablePtr nodenamestable,
qemuBlockNodeNameBackingChainDataPtr *nodenamedata) qemuBlockNodeNameBackingChainDataPtr *nodenamedata)
{ {
qemuBlockNodeNameBackingChainDataPtr data = NULL; VIR_AUTOPTR(qemuBlockNodeNameBackingChainData) data = NULL;
qemuBlockNodeNameBackingChainDataPtr backingdata = NULL; qemuBlockNodeNameBackingChainDataPtr backingdata = NULL;
virJSONValuePtr backing = virJSONValueObjectGetObject(next, "backing"); virJSONValuePtr backing = virJSONValueObjectGetObject(next, "backing");
virJSONValuePtr parent = virJSONValueObjectGetObject(next, "parent"); virJSONValuePtr parent = virJSONValueObjectGetObject(next, "parent");
@ -189,7 +192,6 @@ qemuBlockNodeNameGetBackingChainBacking(virJSONValuePtr next,
ret = 0; ret = 0;
cleanup: cleanup:
qemuBlockNodeNameBackingChainDataFree(data);
return ret; return ret;
} }
@ -201,7 +203,7 @@ qemuBlockNodeNameGetBackingChainDisk(size_t pos ATTRIBUTE_UNUSED,
{ {
struct qemuBlockNodeNameGetBackingChainData *data = opaque; struct qemuBlockNodeNameGetBackingChainData *data = opaque;
const char *device = virJSONValueObjectGetString(item, "device"); const char *device = virJSONValueObjectGetString(item, "device");
qemuBlockNodeNameBackingChainDataPtr devicedata = NULL; VIR_AUTOPTR(qemuBlockNodeNameBackingChainData) devicedata = NULL;
int ret = -1; int ret = -1;
if (qemuBlockNodeNameGetBackingChainBacking(item, data->nodenamestable, if (qemuBlockNodeNameGetBackingChainBacking(item, data->nodenamestable,
@ -216,7 +218,6 @@ qemuBlockNodeNameGetBackingChainDisk(size_t pos ATTRIBUTE_UNUSED,
ret = 1; /* we don't really want to steal @item */ ret = 1; /* we don't really want to steal @item */
cleanup: cleanup:
qemuBlockNodeNameBackingChainDataFree(devicedata);
return ret; return ret;
} }