From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:40430) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFgcx-0000zQ-VH for qemu-devel@nongnu.org; Mon, 17 Oct 2011 02:24:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RFgcs-0004iN-Hi for qemu-devel@nongnu.org; Mon, 17 Oct 2011 02:24:47 -0400 Received: from e23smtp06.au.ibm.com ([202.81.31.148]:57655) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFgcr-0004i8-Mv for qemu-devel@nongnu.org; Mon, 17 Oct 2011 02:24:42 -0400 Received: from d23relay05.au.ibm.com (d23relay05.au.ibm.com [202.81.31.247]) by e23smtp06.au.ibm.com (8.14.4/8.13.1) with ESMTP id p9H6NHug015120 for ; Mon, 17 Oct 2011 17:23:17 +1100 Received: from d23av01.au.ibm.com (d23av01.au.ibm.com [9.190.234.96]) by d23relay05.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p9H6Lxwk1843432 for ; Mon, 17 Oct 2011 17:22:00 +1100 Received: from d23av01.au.ibm.com (loopback [127.0.0.1]) by d23av01.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p9H6OTvA027244 for ; Mon, 17 Oct 2011 17:24:30 +1100 Message-ID: <4E9BC9FB.3060601@linux.vnet.ibm.com> Date: Mon, 17 Oct 2011 14:23:55 +0800 From: Ray Wang MIME-Version: 1.0 References: <1318831906-26113-1-git-send-email-wdongxu@linux.vnet.ibm.com> In-Reply-To: <1318831906-26113-1-git-send-email-wdongxu@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] cloop.c: use gfree,instead of free List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Dong Xu Wang Cc: qemu-devel@nongnu.org On 10/17/2011 02:11 PM, Dong Xu Wang wrote: > Use gfree, to pair with g_malloc. Also fix coding style. Should it be g_free, instead of gfree. > Signed-off-by: Dong Xu Wang > --- > block/cloop.c | 114 +++++++++++++++++++++++++++++++-------------------------- > 1 files changed, 62 insertions(+), 52 deletions(-) > > diff --git a/block/cloop.c b/block/cloop.c > index 8cff9f2..708093e 100644 > --- a/block/cloop.c > +++ b/block/cloop.c > @@ -39,21 +39,23 @@ typedef struct BDRVCloopState { > > static int cloop_probe(const uint8_t *buf, int buf_size, const char *filename) > { > - const char* magic_version_2_0="#!/bin/sh\n" > - "#V2.0 Format\n" > - "modprobe cloop file=$0&& mount -r -t iso9660 /dev/cloop $1\n"; > - int length=strlen(magic_version_2_0); > - if(length>buf_size) > - length=buf_size; > - if(!memcmp(magic_version_2_0,buf,length)) > - return 2; > + const char *magic_version_2_0 = "#!/bin/sh\n" > + "#V2.0 Format\n" > + "modprobe cloop file=$0&& mount -r -t iso9660 /dev/cloop $1\n"; > + int length = strlen(magic_version_2_0); > + if (length> buf_size) { > + length = buf_size; > + } > + if (!memcmp(magic_version_2_0, buf, length)) { > + return 2; > + } > return 0; > } > > static int cloop_open(BlockDriverState *bs, int flags) > { > BDRVCloopState *s = bs->opaque; > - uint32_t offsets_size,max_compressed_block_size=1,i; > + uint32_t offsets_size, max_compressed_block_size = 1, i; > > bs->read_only = 1; > > @@ -73,26 +75,28 @@ static int cloop_open(BlockDriverState *bs, int flags) > s->offsets = g_malloc(offsets_size); > if (bdrv_pread(bs->file, 128 + 4 + 4, s->offsets, offsets_size)< > offsets_size) { > - goto cloop_close; > + goto cloop_close; > } > for(i=0;in_blocks;i++) { > - s->offsets[i]=be64_to_cpu(s->offsets[i]); > - if(i>0) { > - uint32_t size=s->offsets[i]-s->offsets[i-1]; > - if(size>max_compressed_block_size) > - max_compressed_block_size=size; > - } > + s->offsets[i] = be64_to_cpu(s->offsets[i]); > + if (i> 0) { > + uint32_t size = s->offsets[i]-s->offsets[i - 1]; > + if (size> max_compressed_block_size) { > + max_compressed_block_size = size; > + } > + } > } > > /* initialize zlib engine */ > - s->compressed_block = g_malloc(max_compressed_block_size+1); > + s->compressed_block = g_malloc(max_compressed_block_size + 1); > s->uncompressed_block = g_malloc(s->block_size); > - if(inflateInit(&s->zstream) != Z_OK) > - goto cloop_close; > - s->current_block=s->n_blocks; > + if (inflateInit(&s->zstream) != Z_OK) { > + goto cloop_close; > + } > + s->current_block = s->n_blocks; > > s->sectors_per_block = s->block_size/512; > - bs->total_sectors = s->n_blocks*s->sectors_per_block; > + bs->total_sectors = s->n_blocks * s->sectors_per_block; > return 0; > > cloop_close: > @@ -104,26 +108,29 @@ static inline int cloop_read_block(BlockDriverState *bs, int block_num) > BDRVCloopState *s = bs->opaque; > > if(s->current_block != block_num) { > - int ret; > - uint32_t bytes = s->offsets[block_num+1]-s->offsets[block_num]; > + int ret; > + uint32_t bytes = s->offsets[block_num+1] - s->offsets[block_num]; > > ret = bdrv_pread(bs->file, s->offsets[block_num], s->compressed_block, > bytes); > - if (ret != bytes) > + if (ret != bytes) { > return -1; > + } > + > + s->zstream.next_in = s->compressed_block; > + s->zstream.avail_in = bytes; > + s->zstream.next_out = s->uncompressed_block; > + s->zstream.avail_out = s->block_size; > + ret = inflateReset(&s->zstream); > + if (ret != Z_OK) { > + return -1; > + } > + ret = inflate(&s->zstream, Z_FINISH); > + if (ret != Z_STREAM_END || s->zstream.total_out != s->block_size) { > + return -1; > + } > > - s->zstream.next_in = s->compressed_block; > - s->zstream.avail_in = bytes; > - s->zstream.next_out = s->uncompressed_block; > - s->zstream.avail_out = s->block_size; > - ret = inflateReset(&s->zstream); > - if(ret != Z_OK) > - return -1; > - ret = inflate(&s->zstream, Z_FINISH); > - if(ret != Z_STREAM_END || s->zstream.total_out != s->block_size) > - return -1; > - > - s->current_block = block_num; > + s->current_block = block_num; > } > return 0; > } > @@ -134,12 +141,14 @@ static int cloop_read(BlockDriverState *bs, int64_t sector_num, > BDRVCloopState *s = bs->opaque; > int i; > > - for(i=0;i - uint32_t sector_offset_in_block=((sector_num+i)%s->sectors_per_block), > - block_num=(sector_num+i)/s->sectors_per_block; > - if(cloop_read_block(bs, block_num) != 0) > - return -1; > - memcpy(buf+i*512,s->uncompressed_block+sector_offset_in_block*512,512); > + for (i = 0; i< nb_sectors; i++) { > + uint32_t sector_offset_in_block = ((sector_num + i) % s->sectors_per_block), > + block_num = (sector_num + i) / s->sectors_per_block; > + if (cloop_read_block(bs, block_num) != 0) { > + return -1; > + } > + memcpy(buf + i * 512, s->uncompressed_block + > + sector_offset_in_block * 512, 512); > } > return 0; > } > @@ -147,20 +156,21 @@ static int cloop_read(BlockDriverState *bs, int64_t sector_num, > static void cloop_close(BlockDriverState *bs) > { > BDRVCloopState *s = bs->opaque; > - if(s->n_blocks>0) > - free(s->offsets); > - free(s->compressed_block); > - free(s->uncompressed_block); > + if (s->n_blocks> 0) { > + g_free(s->offsets); > + } > + g_free(s->compressed_block); > + g_free(s->uncompressed_block); > inflateEnd(&s->zstream); > } > > static BlockDriver bdrv_cloop = { > - .format_name = "cloop", > - .instance_size = sizeof(BDRVCloopState), > - .bdrv_probe = cloop_probe, > - .bdrv_open = cloop_open, > - .bdrv_read = cloop_read, > - .bdrv_close = cloop_close, > + .format_name = "cloop", > + .instance_size = sizeof(BDRVCloopState), > + .bdrv_probe = cloop_probe, > + .bdrv_open = cloop_open, > + .bdrv_read = cloop_read, > + .bdrv_close = cloop_close, > }; > > static void bdrv_cloop_init(void) Reviewed_by: raywang@linux.vnet.ibm.com -- Regards, Ray Wang