qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] cloop.c: use gfree,instead of free


From: Ray Wang
Subject: Re: [Qemu-devel] [PATCH] cloop.c: use gfree,instead of free
Date: Mon, 17 Oct 2011 14:23:55 +0800
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.18) Gecko/20110617 Thunderbird/3.1.11

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<address@hidden>
---
  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;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];
+            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<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);
+    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: address@hidden

--
Regards,

Ray Wang




reply via email to

[Prev in Thread] Current Thread [Next in Thread]