On Tue, May 09, 2017 at 11:30:18AM -0400, John Ferlan wrote:
Create/use a helper to perform object allocation.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/conf/virstorageobj.c | 34 +++++++++++++++++++++++-----------
1 file changed, 23 insertions(+), 11 deletions(-)
diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c
index 7d6b311..0079472 100644
--- a/src/conf/virstorageobj.c
+++ b/src/conf/virstorageobj.c
@@ -37,6 +37,27 @@
VIR_LOG_INIT("conf.virstorageobj");
+static virStoragePoolObjPtr
+virStoragePoolObjNew(virStoragePoolDefPtr def)
+{
+ virStoragePoolObjPtr obj;
+
+ if (VIR_ALLOC(obj) < 0)
+ return NULL;
+
+ if (virMutexInit(&obj->lock) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("cannot initialize mutex"));
+ VIR_FREE(obj);
+ return NULL;
+ }
+ virStoragePoolObjLock(obj);
+ obj->active = 0;
+ obj->def = def;
+ return obj;
+}
+
+
virStoragePoolDefPtr
virStoragePoolObjGetDef(virStoragePoolObjPtr obj)
{
@@ -386,24 +407,15 @@ virStoragePoolObjAssignDef(virStoragePoolObjListPtr pools,
return obj;
}
- if (VIR_ALLOC(obj) < 0)
+ if (!(obj = virStoragePoolObjNew(def)))
return NULL;
The new virStoragePoolObjNew() doesn't have to take @def and ...
- if (virMutexInit(&obj->lock) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("cannot initialize mutex"));
- VIR_FREE(obj);
- return NULL;
- }
- virStoragePoolObjLock(obj);
- obj->active = 0;
-
if (VIR_APPEND_ELEMENT_COPY(pools->objs, pools->count, obj) < 0) {
+ obj->def = NULL;
... need to set the @obj->def to NULL and ...
virStoragePoolObjUnlock(obj);
virStoragePoolObjFree(obj);
return NULL;
}
- obj->def = def;
... just keep this line as it is.
return obj;
}
--
2.9.3
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list