
On 07/11/2017 11:17 AM, Pavel Hrdina wrote:
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@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.
True... Again these are patches that I know I'm going to have to rework anyway to fit whatever virObject* gets created. John
return obj; } -- 2.9.3
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list