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 <[email protected]> > --- > 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
> [email protected]
> https://www.redhat.com/mailman/listinfo/libvir-list
signature.asc
Description: Digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
