From: "Andreas Färber" <afaerber@suse.de>
To: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
Cc: qemu-trivial@nongnu.org, raywang@linux.vnet.ibm.com,
qemu-devel@nongnu.org, stefanha@linux.vnet.ibm.com
Subject: Re: [Qemu-trivial] [Qemu-devel] [PATCH v2] use g_free, instead of free
Date: Tue, 01 Nov 2011 09:41:53 +0100 [thread overview]
Message-ID: <4EAFB0D1.60706@suse.de> (raw)
In-Reply-To: <1320128513-16208-1-git-send-email-wdongxu@linux.vnet.ibm.com>
Am 01.11.2011 07:21, schrieb Dong Xu Wang:
> From: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
>
> Fix mismatching allocation and deallocation: g_free should be used to pair with g_malloc.
> Also fix coding style.
>
> Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
I took the time to go through the changes. Me, I would've preferred this
to be two patches (one cleanup, one fix), since the style changes make
up the majority of this patch... Two style changes are missing for
perfection, cf. inline.
Changelog is missing. Did just the description change since v1? In that
case Ray Wang's Reviewed-by is missing. Otherwise please describe!
Trusting Ray that g_free() was right in the first place,
Reviewed-by: Andreas Färber <afaerber@suse.de>
> ---
> block/cloop.c | 119 +++++++++++++++++++++++++++++++--------------------------
> 1 files changed, 65 insertions(+), 54 deletions(-)
>
> diff --git a/block/cloop.c b/block/cloop.c
> index 775f8a9..1884b8c 100644
> --- a/block/cloop.c
> +++ b/block/cloop.c
> @@ -74,26 +76,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;i<s->n_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];
i - 1 theoretically
> + 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;
> qemu_co_mutex_init(&s->lock);
> return 0;
>
> @@ -105,27 +109,30 @@ 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];
> + if (s->current_block != block_num) {
> + int ret;
> + uint32_t bytes = s->offsets[block_num + 1]-s->offsets[block_num];
] - s
>
> 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;
> }
> @@ -160,20 +170,21 @@ static coroutine_fn int cloop_co_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);
Here are the 3 functional changes!
> 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_co_read,
> - .bdrv_close = cloop_close,
> + .format_name = "cloop",
> + .instance_size = sizeof(BDRVCloopState),
> + .bdrv_probe = cloop_probe,
> + .bdrv_open = cloop_open,
> + .bdrv_read = cloop_co_read,
> + .bdrv_close = cloop_close,
> };
>
> static void bdrv_cloop_init(void)
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
prev parent reply other threads:[~2011-11-01 9:43 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-01 6:21 [Qemu-trivial] [PATCH v2] use g_free, instead of free Dong Xu Wang
2011-11-01 8:41 ` Andreas Färber [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EAFB0D1.60706@suse.de \
--to=afaerber@suse.de \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=raywang@linux.vnet.ibm.com \
--cc=stefanha@linux.vnet.ibm.com \
--cc=wdongxu@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).