On Sat, Jul 28, 2018 at 11:31:47PM +0530, Sukrit Bhatnagar wrote: > By making use of GNU C's cleanup attribute handled by the > VIR_AUTOPTR macro for declaring aggregate pointer variables, > majority of the calls to *Free functions can be dropped, which > in turn leads to getting rid of most of our cleanup sections. > > Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@xxxxxxxxx> > --- > src/util/virqemu.c | 24 ++++++++++-------------- > 1 file changed, 10 insertions(+), 14 deletions(-) > > diff --git a/src/util/virqemu.c b/src/util/virqemu.c > index 4089b8e..cb42d38 100644 > --- a/src/util/virqemu.c > +++ b/src/util/virqemu.c > @@ -56,7 +56,7 @@ virQEMUBuildCommandLineJSONArrayBitmap(const char *key, > { > ssize_t pos = -1; > ssize_t end; > - virBitmapPtr bitmap = NULL; > + VIR_AUTOPTR(virBitmap) bitmap = NULL; > > if (virJSONValueGetArrayAsBitmap(array, &bitmap) < 0) > return -1; > @@ -73,8 +73,6 @@ virQEMUBuildCommandLineJSONArrayBitmap(const char *key, > } > } > > - virBitmapFree(bitmap); > - > return 0; > } Reviewed-by: Erik Skultety <eskultet@xxxxxxxxxx> > > @@ -267,21 +265,19 @@ virQEMUBuildObjectCommandlineFromJSON(virBufferPtr buf, > char * > virQEMUBuildDriveCommandlineFromJSON(virJSONValuePtr srcdef) > { > - virBuffer buf = VIR_BUFFER_INITIALIZER; > - char *ret = NULL; > + VIR_AUTOPTR(virBuffer) buf = NULL; > > - if (virQEMUBuildCommandLineJSON(srcdef, &buf, > + if (VIR_ALLOC(buf) < 0) > + return NULL; > + > + if (virQEMUBuildCommandLineJSON(srcdef, buf, > virQEMUBuildCommandLineJSONArrayNumbered) < 0) > - goto cleanup; > + return NULL; > > - if (virBufferCheckError(&buf) < 0) > - goto cleanup; > + if (virBufferCheckError(buf) < 0) > + return NULL; > > - ret = virBufferContentAndReset(&buf); > - > - cleanup: > - virBufferFreeAndReset(&buf); > - return ret; > + return virBufferContentAndReset(buf); we talked about virBuffer in previous patches, so that will need fixing, I'll push the hunk above. Erik -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list