diff mbox

[3/3] block: Drop some superfluous casts from void *

Message ID 1401467438-17189-4-git-send-email-armbru@redhat.com
State New
Headers show

Commit Message

Markus Armbruster May 30, 2014, 4:30 p.m. UTC
They clutter the code.  Unfortunately, I can't figure out how to make
Coccinelle drop all of them, so I have to settle for common special
cases:

    @@
    type T;
    T *pt;
    void *pv;
    @@
    - pt = (T *)pv;
    + pt = pv;
    @@
    type T;
    @@
    - (T *)
      (\(g_malloc\|g_malloc0\|g_realloc\|g_new\|g_new0\|g_renew\|
	 g_try_malloc\|g_try_malloc0\|g_try_realloc\|
	 g_try_new\|g_try_new0\|g_try_renew\)(...))

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 block/sheepdog.c    | 2 +-
 block/vhdx-log.c    | 2 +-
 block/vvfat.c       | 8 ++++----
 hw/ide/microdrive.c | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)

Comments

Max Reitz May 30, 2014, 6:32 p.m. UTC | #1
On 30.05.2014 18:30, Markus Armbruster wrote:
> They clutter the code.  Unfortunately, I can't figure out how to make
> Coccinelle drop all of them, so I have to settle for common special
> cases:
>
>      @@
>      type T;
>      T *pt;
>      void *pv;
>      @@
>      - pt = (T *)pv;
>      + pt = pv;
>      @@
>      type T;
>      @@
>      - (T *)
>        (\(g_malloc\|g_malloc0\|g_realloc\|g_new\|g_new0\|g_renew\|
> 	 g_try_malloc\|g_try_malloc0\|g_try_realloc\|
> 	 g_try_new\|g_try_new0\|g_try_renew\)(...))
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   block/sheepdog.c    | 2 +-
>   block/vhdx-log.c    | 2 +-
>   block/vvfat.c       | 8 ++++----
>   hw/ide/microdrive.c | 2 +-
>   4 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index 0709fd0..340bdf6 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -2202,7 +2202,7 @@ static int sd_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info)
>           goto cleanup;
>       }
>   
> -    inode = (SheepdogInode *)g_malloc(datalen);
> +    inode = g_malloc(datalen);
>   
>       ret = read_object(fd, (char *)inode, vid_to_vdi_oid(new_vid),
>                         s->inode.nr_copies, datalen, 0, s->cache_flags);
> diff --git a/block/vhdx-log.c b/block/vhdx-log.c
> index 3eb7e68..f07328d 100644
> --- a/block/vhdx-log.c
> +++ b/block/vhdx-log.c
> @@ -909,7 +909,7 @@ static int vhdx_log_write(BlockDriverState *bs, BDRVVHDXState *s,
>       buffer = qemu_blockalign(bs, total_length);
>       memcpy(buffer, &new_hdr, sizeof(new_hdr));
>   
> -    new_desc = (VHDXLogDescriptor *) (buffer + sizeof(new_hdr));
> +    new_desc = buffer + sizeof(new_hdr);

Perhaps we should try to fix void pointer arithmetic some time...

Anyway:

Reviewed-by: Max Reitz <mreitz@redhat.com>
Markus Armbruster June 2, 2014, 5:25 a.m. UTC | #2
Max Reitz <mreitz@redhat.com> writes:

> On 30.05.2014 18:30, Markus Armbruster wrote:
>> They clutter the code.  Unfortunately, I can't figure out how to make
>> Coccinelle drop all of them, so I have to settle for common special
>> cases:
>>
>>      @@
>>      type T;
>>      T *pt;
>>      void *pv;
>>      @@
>>      - pt = (T *)pv;
>>      + pt = pv;
>>      @@
>>      type T;
>>      @@
>>      - (T *)
>>        (\(g_malloc\|g_malloc0\|g_realloc\|g_new\|g_new0\|g_renew\|
>> 	 g_try_malloc\|g_try_malloc0\|g_try_realloc\|
>> 	 g_try_new\|g_try_new0\|g_try_renew\)(...))
>>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>   block/sheepdog.c    | 2 +-
>>   block/vhdx-log.c    | 2 +-
>>   block/vvfat.c       | 8 ++++----
>>   hw/ide/microdrive.c | 2 +-
>>   4 files changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/block/sheepdog.c b/block/sheepdog.c
>> index 0709fd0..340bdf6 100644
>> --- a/block/sheepdog.c
>> +++ b/block/sheepdog.c
>> @@ -2202,7 +2202,7 @@ static int sd_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info)
>>           goto cleanup;
>>       }
>>   -    inode = (SheepdogInode *)g_malloc(datalen);
>> +    inode = g_malloc(datalen);
>>         ret = read_object(fd, (char *)inode,
>> vid_to_vdi_oid(new_vid),
>>                         s->inode.nr_copies, datalen, 0, s->cache_flags);
>> diff --git a/block/vhdx-log.c b/block/vhdx-log.c
>> index 3eb7e68..f07328d 100644
>> --- a/block/vhdx-log.c
>> +++ b/block/vhdx-log.c
>> @@ -909,7 +909,7 @@ static int vhdx_log_write(BlockDriverState *bs, BDRVVHDXState *s,
>>       buffer = qemu_blockalign(bs, total_length);
>>       memcpy(buffer, &new_hdr, sizeof(new_hdr));
>>   -    new_desc = (VHDXLogDescriptor *) (buffer + sizeof(new_hdr));
>> +    new_desc = buffer + sizeof(new_hdr);
>
> Perhaps we should try to fix void pointer arithmetic some time...

Fixes for that tend to involve back-and-forth type casting.  I find that
cure not much of an improvement over the disease :)

> Anyway:
>
> Reviewed-by: Max Reitz <mreitz@redhat.com>

Thanks!
diff mbox

Patch

diff --git a/block/sheepdog.c b/block/sheepdog.c
index 0709fd0..340bdf6 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -2202,7 +2202,7 @@  static int sd_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info)
         goto cleanup;
     }
 
-    inode = (SheepdogInode *)g_malloc(datalen);
+    inode = g_malloc(datalen);
 
     ret = read_object(fd, (char *)inode, vid_to_vdi_oid(new_vid),
                       s->inode.nr_copies, datalen, 0, s->cache_flags);
diff --git a/block/vhdx-log.c b/block/vhdx-log.c
index 3eb7e68..f07328d 100644
--- a/block/vhdx-log.c
+++ b/block/vhdx-log.c
@@ -909,7 +909,7 @@  static int vhdx_log_write(BlockDriverState *bs, BDRVVHDXState *s,
     buffer = qemu_blockalign(bs, total_length);
     memcpy(buffer, &new_hdr, sizeof(new_hdr));
 
-    new_desc = (VHDXLogDescriptor *) (buffer + sizeof(new_hdr));
+    new_desc = buffer + sizeof(new_hdr);
     data_sector = buffer + (desc_sectors * VHDX_LOG_SECTOR_SIZE);
     data_tmp = data;
 
diff --git a/block/vvfat.c b/block/vvfat.c
index f7ac28d..e95a9a0 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -732,7 +732,7 @@  static int read_directory(BDRVVVFATState* s, int mapping_index)
 	if(first_cluster == 0 && (is_dotdot || is_dot))
 	    continue;
 
-	buffer=(char*)g_malloc(length);
+	buffer=g_malloc(length);
 	snprintf(buffer,length,"%s/%s",dirname,entry->d_name);
 
 	if(stat(buffer,&st)<0) {
@@ -767,7 +767,7 @@  static int read_directory(BDRVVVFATState* s, int mapping_index)
 
 	/* create mapping for this file */
 	if(!is_dot && !is_dotdot && (S_ISDIR(st.st_mode) || st.st_size)) {
-	    s->current_mapping=(mapping_t*)array_get_next(&(s->mapping));
+	    s->current_mapping = array_get_next(&(s->mapping));
 	    s->current_mapping->begin=0;
 	    s->current_mapping->end=st.st_size;
 	    /*
@@ -809,12 +809,12 @@  static int read_directory(BDRVVVFATState* s, int mapping_index)
     }
 
      /* reget the mapping, since s->mapping was possibly realloc()ed */
-    mapping = (mapping_t*)array_get(&(s->mapping), mapping_index);
+    mapping = array_get(&(s->mapping), mapping_index);
     first_cluster += (s->directory.next - mapping->info.dir.first_dir_index)
 	* 0x20 / s->cluster_size;
     mapping->end = first_cluster;
 
-    direntry = (direntry_t*)array_get(&(s->directory), mapping->dir_index);
+    direntry = array_get(&(s->directory), mapping->dir_index);
     set_begin_of_direntry(direntry, mapping->begin);
 
     return 0;
diff --git a/hw/ide/microdrive.c b/hw/ide/microdrive.c
index f24946d..7c57d39 100644
--- a/hw/ide/microdrive.c
+++ b/hw/ide/microdrive.c
@@ -567,7 +567,7 @@  PCMCIACardState *dscm1xxxx_init(DriveInfo *dinfo)
     }
     md->bus.ifs[0].drive_kind = IDE_CFATA;
     md->bus.ifs[0].mdata_size = METADATA_SIZE;
-    md->bus.ifs[0].mdata_storage = (uint8_t *) g_malloc0(METADATA_SIZE);
+    md->bus.ifs[0].mdata_storage = g_malloc0(METADATA_SIZE);
 
     return PCMCIA_CARD(md);
 }