From: Peter Krempa <pkrempa@redhat.com>
Similarly to the refactor of 'virGetDomain' done in commit 3de56902d32
rework the code to assume that 'virObjectNew' can't return NULL and use
the 'virCheck*Return' helpers to avoid an 'error:' label.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
src/datatypes.c | 175 ++++++++++++------------------------------------
1 file changed, 44 insertions(+), 131 deletions(-)
diff --git a/src/datatypes.c b/src/datatypes.c
index 4e72855ebc..941e7f9da2 100644
--- a/src/datatypes.c
+++ b/src/datatypes.c
@@ -349,23 +349,16 @@ virGetNetwork(virConnectPtr conn, const char *name, const unsigned char *uuid)
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckConnectGoto(conn, error);
- virCheckNonNullArgGoto(name, error);
- virCheckNonNullArgGoto(uuid, error);
-
- if (!(ret = virObjectNew(virNetworkClass)))
- goto error;
+ virCheckConnectReturn(conn, NULL);
+ virCheckNonNullArgReturn(name, NULL);
+ virCheckNonNullArgReturn(uuid, NULL);
+ ret = virObjectNew(virNetworkClass);
ret->name = g_strdup(name);
-
ret->conn = virObjectRef(conn);
memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN);
return ret;
-
- error:
- virObjectUnref(ret);
- return NULL;
}
/**
@@ -410,20 +403,14 @@ virGetNetworkPort(virNetworkPtr net, const unsigned char *uuid)
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckNetworkGoto(net, error);
- virCheckNonNullArgGoto(uuid, error);
-
- if (!(ret = virObjectNew(virNetworkPortClass)))
- goto error;
+ virCheckNetworkReturn(net, NULL);
+ virCheckNonNullArgReturn(uuid, NULL);
+ ret = virObjectNew(virNetworkPortClass);
ret->net = virObjectRef(net);
memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN);
return ret;
-
- error:
- virObjectUnref(ret);
- return NULL;
}
/**
@@ -468,26 +455,19 @@ virGetInterface(virConnectPtr conn, const char *name, const char *mac)
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckConnectGoto(conn, error);
- virCheckNonNullArgGoto(name, error);
+ virCheckConnectReturn(conn, NULL);
+ virCheckNonNullArgReturn(name, NULL);
/* a NULL mac from caller is okay. Treat it as blank */
if (mac == NULL)
mac = "";
- if (!(ret = virObjectNew(virInterfaceClass)))
- goto error;
-
+ ret = virObjectNew(virInterfaceClass);
ret->name = g_strdup(name);
ret->mac = g_strdup(mac);
-
ret->conn = virObjectRef(conn);
return ret;
-
- error:
- virObjectUnref(ret);
- return NULL;
}
/**
@@ -535,15 +515,12 @@ virGetStoragePool(virConnectPtr conn, const char *name,
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckConnectGoto(conn, error);
- virCheckNonNullArgGoto(name, error);
- virCheckNonNullArgGoto(uuid, error);
-
- if (!(ret = virObjectNew(virStoragePoolClass)))
- goto error;
+ virCheckConnectReturn(conn, NULL);
+ virCheckNonNullArgReturn(name, NULL);
+ virCheckNonNullArgReturn(uuid, NULL);
+ ret = virObjectNew(virStoragePoolClass);
ret->name = g_strdup(name);
-
ret->conn = virObjectRef(conn);
memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN);
@@ -552,10 +529,6 @@ virGetStoragePool(virConnectPtr conn, const char *name,
ret->privateDataFreeFunc = freeFunc;
return ret;
-
- error:
- virObjectUnref(ret);
- return NULL;
}
@@ -609,18 +582,15 @@ virGetStorageVol(virConnectPtr conn, const char *pool, const char *name,
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckConnectGoto(conn, error);
- virCheckNonNullArgGoto(pool, error);
- virCheckNonNullArgGoto(name, error);
- virCheckNonNullArgGoto(key, error);
-
- if (!(ret = virObjectNew(virStorageVolClass)))
- goto error;
+ virCheckConnectReturn(conn, NULL);
+ virCheckNonNullArgReturn(pool, NULL);
+ virCheckNonNullArgReturn(name, NULL);
+ virCheckNonNullArgReturn(key, NULL);
+ ret = virObjectNew(virStorageVolClass);
ret->pool = g_strdup(pool);
ret->name = g_strdup(name);
ret->key = g_strdup(key);
-
ret->conn = virObjectRef(conn);
/* set driver specific data */
@@ -628,10 +598,6 @@ virGetStorageVol(virConnectPtr conn, const char *pool, const char *name,
ret->privateDataFreeFunc = freeFunc;
return ret;
-
- error:
- virObjectUnref(ret);
- return NULL;
}
@@ -679,20 +645,14 @@ virGetNodeDevice(virConnectPtr conn, const char *name)
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckConnectGoto(conn, error);
- virCheckNonNullArgGoto(name, error);
-
- if (!(ret = virObjectNew(virNodeDeviceClass)))
- goto error;
+ virCheckConnectReturn(conn, NULL);
+ virCheckNonNullArgReturn(name, NULL);
+ ret = virObjectNew(virNodeDeviceClass);
ret->name = g_strdup(name);
-
ret->conn = virObjectRef(conn);
- return ret;
- error:
- virObjectUnref(ret);
- return NULL;
+ return ret;
}
@@ -738,23 +698,16 @@ virGetSecret(virConnectPtr conn, const unsigned char *uuid,
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckConnectGoto(conn, error);
- virCheckNonNullArgGoto(uuid, error);
-
- if (!(ret = virObjectNew(virSecretClass)))
- return NULL;
+ virCheckConnectReturn(conn, NULL);
+ virCheckNonNullArgReturn(uuid, NULL);
+ ret = virObjectNew(virSecretClass);
memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN);
ret->usageType = usageType;
ret->usageID = g_strdup(NULLSTR_EMPTY(usageID));
-
ret->conn = virObjectRef(conn);
return ret;
-
- error:
- virObjectUnref(ret);
- return NULL;
}
/**
@@ -800,9 +753,7 @@ virGetStream(virConnectPtr conn)
virCheckConnectReturn(conn, NULL);
- if (!(ret = virObjectNew(virStreamClass)))
- return NULL;
-
+ ret = virObjectNew(virStreamClass);
ret->conn = virObjectRef(conn);
return ret;
@@ -850,24 +801,16 @@ virGetNWFilter(virConnectPtr conn, const char *name,
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckConnectGoto(conn, error);
- virCheckNonNullArgGoto(name, error);
- virCheckNonNullArgGoto(uuid, error);
-
- if (!(ret = virObjectNew(virNWFilterClass)))
- goto error;
+ virCheckConnectReturn(conn, NULL);
+ virCheckNonNullArgReturn(name, NULL);
+ virCheckNonNullArgReturn(uuid, NULL);
+ ret = virObjectNew(virNWFilterClass);
ret->name = g_strdup(name);
-
memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN);
-
ret->conn = virObjectRef(conn);
return ret;
-
- error:
- virObjectUnref(ret);
- return NULL;
}
@@ -915,23 +858,15 @@ virGetNWFilterBinding(virConnectPtr conn, const char *portdev,
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckConnectGoto(conn, error);
- virCheckNonNullArgGoto(portdev, error);
-
- if (!(ret = virObjectNew(virNWFilterBindingClass)))
- goto error;
+ virCheckConnectReturn(conn, NULL);
+ virCheckNonNullArgReturn(portdev, NULL);
+ ret = virObjectNew(virNWFilterBindingClass);
ret->portdev = g_strdup(portdev);
-
ret->filtername = g_strdup(filtername);
-
ret->conn = virObjectRef(conn);
return ret;
-
- error:
- virObjectUnref(ret);
- return NULL;
}
@@ -977,20 +912,14 @@ virGetDomainCheckpoint(virDomainPtr domain,
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckDomainGoto(domain, error);
- virCheckNonNullArgGoto(name, error);
+ virCheckDomainReturn(domain, NULL);
+ virCheckNonNullArgReturn(name, NULL);
- if (!(ret = virObjectNew(virDomainCheckpointClass)))
- goto error;
+ ret = virObjectNew(virDomainCheckpointClass);
ret->name = g_strdup(name);
-
ret->domain = virObjectRef(domain);
return ret;
-
- error:
- virObjectUnref(ret);
- return NULL;
}
@@ -1033,20 +962,14 @@ virGetDomainSnapshot(virDomainPtr domain, const char *name)
if (virDataTypesInitialize() < 0)
return NULL;
- virCheckDomainGoto(domain, error);
- virCheckNonNullArgGoto(name, error);
+ virCheckDomainReturn(domain, NULL);
+ virCheckNonNullArgReturn(name, NULL);
- if (!(ret = virObjectNew(virDomainSnapshotClass)))
- goto error;
+ ret = virObjectNew(virDomainSnapshotClass);
ret->name = g_strdup(name);
-
ret->domain = virObjectRef(domain);
return ret;
-
- error:
- virObjectUnref(ret);
- return NULL;
}
@@ -1171,18 +1094,13 @@ virAdmGetServer(virAdmConnectPtr conn, const char *name)
virAdmServerPtr ret = NULL;
if (virDataTypesInitialize() < 0)
- goto error;
+ return NULL;
- if (!(ret = virObjectNew(virAdmServerClass)))
- goto error;
+ ret = virObjectNew(virAdmServerClass);
ret->name = g_strdup(name);
-
ret->conn = virObjectRef(conn);
return ret;
- error:
- virObjectUnref(ret);
- return NULL;
}
static void
@@ -1202,20 +1120,15 @@ virAdmGetClient(virAdmServerPtr srv, const unsigned long long id,
virAdmClientPtr ret = NULL;
if (virDataTypesInitialize() < 0)
- goto error;
-
- if (!(ret = virObjectNew(virAdmClientClass)))
- goto error;
+ return NULL;
+ ret = virObjectNew(virAdmClientClass);
ret->id = id;
ret->timestamp = timestamp;
ret->transport = transport;
ret->srv = virObjectRef(srv);
return ret;
- error:
- virObjectUnref(ret);
- return NULL;
}
static void
--
2.51.0
© 2016 - 2025 Red Hat, Inc.