Message ID | 1442231491-23352-1-git-send-email-armbru@redhat.com |
---|---|
State | New |
Headers | show |
On 09/14/2015 05:51 AM, Markus Armbruster wrote: > g_new(T, n) is neater than g_malloc(sizeof(T) * n). It's also safer, > for two reasons. One, it catches multiplication overflowing size_t. > Two, it returns T * rather than void *, which lets the compiler catch > more type errors. > > This commit only touches allocations with size arguments of the form > sizeof(T). Same Coccinelle semantic patch as in commit b45c03f. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > migration/migration.c | 2 +- > migration/qemu-file-buf.c | 2 +- > migration/qemu-file-stdio.c | 4 ++-- > migration/qemu-file-unix.c | 4 ++-- > migration/qemu-file.c | 2 +- > migration/rdma.c | 17 ++++++++--------- > migration/savevm.c | 12 ++++++------ > 7 files changed, 21 insertions(+), 22 deletions(-) Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: zhanghailiang <zhang.zhanghailiang@huawei.com> On 2015/9/14 19:51, Markus Armbruster wrote: > g_new(T, n) is neater than g_malloc(sizeof(T) * n). It's also safer, > for two reasons. One, it catches multiplication overflowing size_t. > Two, it returns T * rather than void *, which lets the compiler catch > more type errors. > > This commit only touches allocations with size arguments of the form > sizeof(T). Same Coccinelle semantic patch as in commit b45c03f. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > migration/migration.c | 2 +- > migration/qemu-file-buf.c | 2 +- > migration/qemu-file-stdio.c | 4 ++-- > migration/qemu-file-unix.c | 4 ++-- > migration/qemu-file.c | 2 +- > migration/rdma.c | 17 ++++++++--------- > migration/savevm.c | 12 ++++++------ > 7 files changed, 21 insertions(+), 22 deletions(-) > > diff --git a/migration/migration.c b/migration/migration.c > index 662e77e..e0ce401 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -86,7 +86,7 @@ MigrationIncomingState *migration_incoming_get_current(void) > > MigrationIncomingState *migration_incoming_state_new(QEMUFile* f) > { > - mis_current = g_malloc0(sizeof(MigrationIncomingState)); > + mis_current = g_new0(MigrationIncomingState, 1); > mis_current->file = f; > QLIST_INIT(&mis_current->loadvm_handlers); > > diff --git a/migration/qemu-file-buf.c b/migration/qemu-file-buf.c > index 2de9330..7adec46 100644 > --- a/migration/qemu-file-buf.c > +++ b/migration/qemu-file-buf.c > @@ -439,7 +439,7 @@ QEMUFile *qemu_bufopen(const char *mode, QEMUSizedBuffer *input) > return NULL; > } > > - s = g_malloc0(sizeof(QEMUBuffer)); > + s = g_new0(QEMUBuffer, 1); > s->qsb = input; > > if (s->qsb == NULL) { > diff --git a/migration/qemu-file-stdio.c b/migration/qemu-file-stdio.c > index 285068b..079caee 100644 > --- a/migration/qemu-file-stdio.c > +++ b/migration/qemu-file-stdio.c > @@ -143,7 +143,7 @@ QEMUFile *qemu_popen_cmd(const char *command, const char *mode) > return NULL; > } > > - s = g_malloc0(sizeof(QEMUFileStdio)); > + s = g_new0(QEMUFileStdio, 1); > > s->stdio_file = stdio_file; > > @@ -175,7 +175,7 @@ QEMUFile *qemu_fopen(const char *filename, const char *mode) > return NULL; > } > > - s = g_malloc0(sizeof(QEMUFileStdio)); > + s = g_new0(QEMUFileStdio, 1); > > s->stdio_file = fopen(filename, mode); > if (!s->stdio_file) { > diff --git a/migration/qemu-file-unix.c b/migration/qemu-file-unix.c > index bfbc086..7d80a54 100644 > --- a/migration/qemu-file-unix.c > +++ b/migration/qemu-file-unix.c > @@ -192,7 +192,7 @@ QEMUFile *qemu_fdopen(int fd, const char *mode) > return NULL; > } > > - s = g_malloc0(sizeof(QEMUFileSocket)); > + s = g_new0(QEMUFileSocket, 1); > s->fd = fd; > > if (mode[0] == 'r') { > @@ -226,7 +226,7 @@ QEMUFile *qemu_fopen_socket(int fd, const char *mode) > return NULL; > } > > - s = g_malloc0(sizeof(QEMUFileSocket)); > + s = g_new0(QEMUFileSocket, 1); > s->fd = fd; > if (mode[0] == 'w') { > qemu_set_block(s->fd); > diff --git a/migration/qemu-file.c b/migration/qemu-file.c > index 6bb3dc1..6162e7e 100644 > --- a/migration/qemu-file.c > +++ b/migration/qemu-file.c > @@ -60,7 +60,7 @@ QEMUFile *qemu_fopen_ops(void *opaque, const QEMUFileOps *ops) > { > QEMUFile *f; > > - f = g_malloc0(sizeof(QEMUFile)); > + f = g_new0(QEMUFile, 1); > > f->opaque = opaque; > f->ops = ops; > diff --git a/migration/rdma.c b/migration/rdma.c > index 9424834..8886fa2 100644 > --- a/migration/rdma.c > +++ b/migration/rdma.c > @@ -541,7 +541,7 @@ static int rdma_add_block(RDMAContext *rdma, const char *block_name, > RDMALocalBlock *block; > RDMALocalBlock *old = local->block; > > - local->block = g_malloc0(sizeof(RDMALocalBlock) * (local->nb_blocks + 1)); > + local->block = g_new0(RDMALocalBlock, local->nb_blocks + 1); > > if (local->nb_blocks) { > int x; > @@ -572,7 +572,7 @@ static int rdma_add_block(RDMAContext *rdma, const char *block_name, > bitmap_clear(block->transit_bitmap, 0, block->nb_chunks); > block->unregister_bitmap = bitmap_new(block->nb_chunks); > bitmap_clear(block->unregister_bitmap, 0, block->nb_chunks); > - block->remote_keys = g_malloc0(block->nb_chunks * sizeof(uint32_t)); > + block->remote_keys = g_new0(uint32_t, block->nb_chunks); > > block->is_ram_block = local->init ? false : true; > > @@ -617,8 +617,8 @@ static int qemu_rdma_init_ram_blocks(RDMAContext *rdma) > memset(local, 0, sizeof *local); > qemu_ram_foreach_block(qemu_rdma_init_one_block, rdma); > trace_qemu_rdma_init_ram_blocks(local->nb_blocks); > - rdma->dest_blocks = (RDMADestBlock *) g_malloc0(sizeof(RDMADestBlock) * > - rdma->local_ram_blocks.nb_blocks); > + rdma->dest_blocks = g_new0(RDMADestBlock, > + rdma->local_ram_blocks.nb_blocks); > local->init = true; > return 0; > } > @@ -677,8 +677,7 @@ static int rdma_delete_block(RDMAContext *rdma, RDMALocalBlock *block) > > if (local->nb_blocks > 1) { > > - local->block = g_malloc0(sizeof(RDMALocalBlock) * > - (local->nb_blocks - 1)); > + local->block = g_new0(RDMALocalBlock, local->nb_blocks - 1); > > if (block->index) { > memcpy(local->block, old, sizeof(RDMALocalBlock) * block->index); > @@ -1164,7 +1163,7 @@ static int qemu_rdma_register_and_get_keys(RDMAContext *rdma, > > /* allocate memory to store chunk MRs */ > if (!block->pmr) { > - block->pmr = g_malloc0(block->nb_chunks * sizeof(struct ibv_mr *)); > + block->pmr = g_new0(struct ibv_mr *, block->nb_chunks); > } > > /* > @@ -2494,7 +2493,7 @@ static void *qemu_rdma_data_init(const char *host_port, Error **errp) > InetSocketAddress *addr; > > if (host_port) { > - rdma = g_malloc0(sizeof(RDMAContext)); > + rdma = g_new0(RDMAContext, 1); > rdma->current_index = -1; > rdma->current_chunk = -1; > > @@ -3399,7 +3398,7 @@ static void *qemu_fopen_rdma(RDMAContext *rdma, const char *mode) > return NULL; > } > > - r = g_malloc0(sizeof(QEMUFileRDMA)); > + r = g_new0(QEMUFileRDMA, 1); > r->rdma = rdma; > > if (mode[0] == 'w') { > diff --git a/migration/savevm.c b/migration/savevm.c > index 33e55fe..7914f86 100644 > --- a/migration/savevm.c > +++ b/migration/savevm.c > @@ -480,7 +480,7 @@ int register_savevm_live(DeviceState *dev, > { > SaveStateEntry *se; > > - se = g_malloc0(sizeof(SaveStateEntry)); > + se = g_new0(SaveStateEntry, 1); > se->version_id = version_id; > se->section_id = savevm_state.global_section_id++; > se->ops = ops; > @@ -498,7 +498,7 @@ int register_savevm_live(DeviceState *dev, > pstrcat(se->idstr, sizeof(se->idstr), "/"); > g_free(id); > > - se->compat = g_malloc0(sizeof(CompatEntry)); > + se->compat = g_new0(CompatEntry, 1); > pstrcpy(se->compat->idstr, sizeof(se->compat->idstr), idstr); > se->compat->instance_id = instance_id == -1 ? > calculate_compat_instance_id(idstr) : instance_id; > @@ -526,7 +526,7 @@ int register_savevm(DeviceState *dev, > LoadStateHandler *load_state, > void *opaque) > { > - SaveVMHandlers *ops = g_malloc0(sizeof(SaveVMHandlers)); > + SaveVMHandlers *ops = g_new0(SaveVMHandlers, 1); > ops->save_state = save_state; > ops->load_state = load_state; > return register_savevm_live(dev, idstr, instance_id, version_id, > @@ -568,7 +568,7 @@ int vmstate_register_with_alias_id(DeviceState *dev, int instance_id, > /* If this triggers, alias support can be dropped for the vmsd. */ > assert(alias_id == -1 || required_for_version >= vmsd->minimum_version_id); > > - se = g_malloc0(sizeof(SaveStateEntry)); > + se = g_new0(SaveStateEntry, 1); > se->version_id = vmsd->version_id; > se->section_id = savevm_state.global_section_id++; > se->opaque = opaque; > @@ -582,7 +582,7 @@ int vmstate_register_with_alias_id(DeviceState *dev, int instance_id, > pstrcat(se->idstr, sizeof(se->idstr), "/"); > g_free(id); > > - se->compat = g_malloc0(sizeof(CompatEntry)); > + se->compat = g_new0(CompatEntry, 1); > pstrcpy(se->compat->idstr, sizeof(se->compat->idstr), vmsd->name); > se->compat->instance_id = instance_id == -1 ? > calculate_compat_instance_id(vmsd->name) : instance_id; > @@ -1544,7 +1544,7 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict) > return; > } > > - available_snapshots = g_malloc0(sizeof(int) * nb_sns); > + available_snapshots = g_new0(int, nb_sns); > total = 0; > for (i = 0; i < nb_sns; i++) { > sn = &sn_tab[i]; >
On (Mon) 14 Sep 2015 [13:51:31], Markus Armbruster wrote: > g_new(T, n) is neater than g_malloc(sizeof(T) * n). It's also safer, > for two reasons. One, it catches multiplication overflowing size_t. > Two, it returns T * rather than void *, which lets the compiler catch > more type errors. > > This commit only touches allocations with size arguments of the form > sizeof(T). Same Coccinelle semantic patch as in commit b45c03f. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com> Amit
diff --git a/migration/migration.c b/migration/migration.c index 662e77e..e0ce401 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -86,7 +86,7 @@ MigrationIncomingState *migration_incoming_get_current(void) MigrationIncomingState *migration_incoming_state_new(QEMUFile* f) { - mis_current = g_malloc0(sizeof(MigrationIncomingState)); + mis_current = g_new0(MigrationIncomingState, 1); mis_current->file = f; QLIST_INIT(&mis_current->loadvm_handlers); diff --git a/migration/qemu-file-buf.c b/migration/qemu-file-buf.c index 2de9330..7adec46 100644 --- a/migration/qemu-file-buf.c +++ b/migration/qemu-file-buf.c @@ -439,7 +439,7 @@ QEMUFile *qemu_bufopen(const char *mode, QEMUSizedBuffer *input) return NULL; } - s = g_malloc0(sizeof(QEMUBuffer)); + s = g_new0(QEMUBuffer, 1); s->qsb = input; if (s->qsb == NULL) { diff --git a/migration/qemu-file-stdio.c b/migration/qemu-file-stdio.c index 285068b..079caee 100644 --- a/migration/qemu-file-stdio.c +++ b/migration/qemu-file-stdio.c @@ -143,7 +143,7 @@ QEMUFile *qemu_popen_cmd(const char *command, const char *mode) return NULL; } - s = g_malloc0(sizeof(QEMUFileStdio)); + s = g_new0(QEMUFileStdio, 1); s->stdio_file = stdio_file; @@ -175,7 +175,7 @@ QEMUFile *qemu_fopen(const char *filename, const char *mode) return NULL; } - s = g_malloc0(sizeof(QEMUFileStdio)); + s = g_new0(QEMUFileStdio, 1); s->stdio_file = fopen(filename, mode); if (!s->stdio_file) { diff --git a/migration/qemu-file-unix.c b/migration/qemu-file-unix.c index bfbc086..7d80a54 100644 --- a/migration/qemu-file-unix.c +++ b/migration/qemu-file-unix.c @@ -192,7 +192,7 @@ QEMUFile *qemu_fdopen(int fd, const char *mode) return NULL; } - s = g_malloc0(sizeof(QEMUFileSocket)); + s = g_new0(QEMUFileSocket, 1); s->fd = fd; if (mode[0] == 'r') { @@ -226,7 +226,7 @@ QEMUFile *qemu_fopen_socket(int fd, const char *mode) return NULL; } - s = g_malloc0(sizeof(QEMUFileSocket)); + s = g_new0(QEMUFileSocket, 1); s->fd = fd; if (mode[0] == 'w') { qemu_set_block(s->fd); diff --git a/migration/qemu-file.c b/migration/qemu-file.c index 6bb3dc1..6162e7e 100644 --- a/migration/qemu-file.c +++ b/migration/qemu-file.c @@ -60,7 +60,7 @@ QEMUFile *qemu_fopen_ops(void *opaque, const QEMUFileOps *ops) { QEMUFile *f; - f = g_malloc0(sizeof(QEMUFile)); + f = g_new0(QEMUFile, 1); f->opaque = opaque; f->ops = ops; diff --git a/migration/rdma.c b/migration/rdma.c index 9424834..8886fa2 100644 --- a/migration/rdma.c +++ b/migration/rdma.c @@ -541,7 +541,7 @@ static int rdma_add_block(RDMAContext *rdma, const char *block_name, RDMALocalBlock *block; RDMALocalBlock *old = local->block; - local->block = g_malloc0(sizeof(RDMALocalBlock) * (local->nb_blocks + 1)); + local->block = g_new0(RDMALocalBlock, local->nb_blocks + 1); if (local->nb_blocks) { int x; @@ -572,7 +572,7 @@ static int rdma_add_block(RDMAContext *rdma, const char *block_name, bitmap_clear(block->transit_bitmap, 0, block->nb_chunks); block->unregister_bitmap = bitmap_new(block->nb_chunks); bitmap_clear(block->unregister_bitmap, 0, block->nb_chunks); - block->remote_keys = g_malloc0(block->nb_chunks * sizeof(uint32_t)); + block->remote_keys = g_new0(uint32_t, block->nb_chunks); block->is_ram_block = local->init ? false : true; @@ -617,8 +617,8 @@ static int qemu_rdma_init_ram_blocks(RDMAContext *rdma) memset(local, 0, sizeof *local); qemu_ram_foreach_block(qemu_rdma_init_one_block, rdma); trace_qemu_rdma_init_ram_blocks(local->nb_blocks); - rdma->dest_blocks = (RDMADestBlock *) g_malloc0(sizeof(RDMADestBlock) * - rdma->local_ram_blocks.nb_blocks); + rdma->dest_blocks = g_new0(RDMADestBlock, + rdma->local_ram_blocks.nb_blocks); local->init = true; return 0; } @@ -677,8 +677,7 @@ static int rdma_delete_block(RDMAContext *rdma, RDMALocalBlock *block) if (local->nb_blocks > 1) { - local->block = g_malloc0(sizeof(RDMALocalBlock) * - (local->nb_blocks - 1)); + local->block = g_new0(RDMALocalBlock, local->nb_blocks - 1); if (block->index) { memcpy(local->block, old, sizeof(RDMALocalBlock) * block->index); @@ -1164,7 +1163,7 @@ static int qemu_rdma_register_and_get_keys(RDMAContext *rdma, /* allocate memory to store chunk MRs */ if (!block->pmr) { - block->pmr = g_malloc0(block->nb_chunks * sizeof(struct ibv_mr *)); + block->pmr = g_new0(struct ibv_mr *, block->nb_chunks); } /* @@ -2494,7 +2493,7 @@ static void *qemu_rdma_data_init(const char *host_port, Error **errp) InetSocketAddress *addr; if (host_port) { - rdma = g_malloc0(sizeof(RDMAContext)); + rdma = g_new0(RDMAContext, 1); rdma->current_index = -1; rdma->current_chunk = -1; @@ -3399,7 +3398,7 @@ static void *qemu_fopen_rdma(RDMAContext *rdma, const char *mode) return NULL; } - r = g_malloc0(sizeof(QEMUFileRDMA)); + r = g_new0(QEMUFileRDMA, 1); r->rdma = rdma; if (mode[0] == 'w') { diff --git a/migration/savevm.c b/migration/savevm.c index 33e55fe..7914f86 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -480,7 +480,7 @@ int register_savevm_live(DeviceState *dev, { SaveStateEntry *se; - se = g_malloc0(sizeof(SaveStateEntry)); + se = g_new0(SaveStateEntry, 1); se->version_id = version_id; se->section_id = savevm_state.global_section_id++; se->ops = ops; @@ -498,7 +498,7 @@ int register_savevm_live(DeviceState *dev, pstrcat(se->idstr, sizeof(se->idstr), "/"); g_free(id); - se->compat = g_malloc0(sizeof(CompatEntry)); + se->compat = g_new0(CompatEntry, 1); pstrcpy(se->compat->idstr, sizeof(se->compat->idstr), idstr); se->compat->instance_id = instance_id == -1 ? calculate_compat_instance_id(idstr) : instance_id; @@ -526,7 +526,7 @@ int register_savevm(DeviceState *dev, LoadStateHandler *load_state, void *opaque) { - SaveVMHandlers *ops = g_malloc0(sizeof(SaveVMHandlers)); + SaveVMHandlers *ops = g_new0(SaveVMHandlers, 1); ops->save_state = save_state; ops->load_state = load_state; return register_savevm_live(dev, idstr, instance_id, version_id, @@ -568,7 +568,7 @@ int vmstate_register_with_alias_id(DeviceState *dev, int instance_id, /* If this triggers, alias support can be dropped for the vmsd. */ assert(alias_id == -1 || required_for_version >= vmsd->minimum_version_id); - se = g_malloc0(sizeof(SaveStateEntry)); + se = g_new0(SaveStateEntry, 1); se->version_id = vmsd->version_id; se->section_id = savevm_state.global_section_id++; se->opaque = opaque; @@ -582,7 +582,7 @@ int vmstate_register_with_alias_id(DeviceState *dev, int instance_id, pstrcat(se->idstr, sizeof(se->idstr), "/"); g_free(id); - se->compat = g_malloc0(sizeof(CompatEntry)); + se->compat = g_new0(CompatEntry, 1); pstrcpy(se->compat->idstr, sizeof(se->compat->idstr), vmsd->name); se->compat->instance_id = instance_id == -1 ? calculate_compat_instance_id(vmsd->name) : instance_id; @@ -1544,7 +1544,7 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict) return; } - available_snapshots = g_malloc0(sizeof(int) * nb_sns); + available_snapshots = g_new0(int, nb_sns); total = 0; for (i = 0; i < nb_sns; i++) { sn = &sn_tab[i];
g_new(T, n) is neater than g_malloc(sizeof(T) * n). It's also safer, for two reasons. One, it catches multiplication overflowing size_t. Two, it returns T * rather than void *, which lets the compiler catch more type errors. This commit only touches allocations with size arguments of the form sizeof(T). Same Coccinelle semantic patch as in commit b45c03f. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- migration/migration.c | 2 +- migration/qemu-file-buf.c | 2 +- migration/qemu-file-stdio.c | 4 ++-- migration/qemu-file-unix.c | 4 ++-- migration/qemu-file.c | 2 +- migration/rdma.c | 17 ++++++++--------- migration/savevm.c | 12 ++++++------ 7 files changed, 21 insertions(+), 22 deletions(-)