Message ID | 1401467438-17189-4-git-send-email-armbru@redhat.com |
---|---|
State | New |
Headers | show |
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>
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 --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); }
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(-)