mirror of https://github.com/xemu-project/xemu.git
block: Use g_new() & friends where that makes obvious sense
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. Patch created with Coccinelle, with two manual changes on top: * Add const to bdrv_iterate_format() to keep the types straight * Convert the allocation in bdrv_drop_intermediate(), which Coccinelle inexplicably misses Coccinelle semantic patch: @@ type T; @@ -g_malloc(sizeof(T)) +g_new(T, 1) @@ type T; @@ -g_try_malloc(sizeof(T)) +g_try_new(T, 1) @@ type T; @@ -g_malloc0(sizeof(T)) +g_new0(T, 1) @@ type T; @@ -g_try_malloc0(sizeof(T)) +g_try_new0(T, 1) @@ type T; expression n; @@ -g_malloc(sizeof(T) * (n)) +g_new(T, n) @@ type T; expression n; @@ -g_try_malloc(sizeof(T) * (n)) +g_try_new(T, n) @@ type T; expression n; @@ -g_malloc0(sizeof(T) * (n)) +g_new0(T, n) @@ type T; expression n; @@ -g_try_malloc0(sizeof(T) * (n)) +g_try_new0(T, n) @@ type T; expression p, n; @@ -g_realloc(p, sizeof(T) * (n)) +g_renew(T, p, n) @@ type T; expression p, n; @@ -g_try_realloc(p, sizeof(T) * (n)) +g_try_renew(T, p, n) Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Jeff Cody <jcody@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
302fa28378
commit
5839e53bbc
|
@ -283,7 +283,7 @@ static int mig_save_device_bulk(QEMUFile *f, BlkMigDevState *bmds)
|
||||||
nr_sectors = total_sectors - cur_sector;
|
nr_sectors = total_sectors - cur_sector;
|
||||||
}
|
}
|
||||||
|
|
||||||
blk = g_malloc(sizeof(BlkMigBlock));
|
blk = g_new(BlkMigBlock, 1);
|
||||||
blk->buf = g_malloc(BLOCK_SIZE);
|
blk->buf = g_malloc(BLOCK_SIZE);
|
||||||
blk->bmds = bmds;
|
blk->bmds = bmds;
|
||||||
blk->sector = cur_sector;
|
blk->sector = cur_sector;
|
||||||
|
@ -354,7 +354,7 @@ static void init_blk_migration_it(void *opaque, BlockDriverState *bs)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bmds = g_malloc0(sizeof(BlkMigDevState));
|
bmds = g_new0(BlkMigDevState, 1);
|
||||||
bmds->bs = bs;
|
bmds->bs = bs;
|
||||||
bmds->bulk_completed = 0;
|
bmds->bulk_completed = 0;
|
||||||
bmds->total_sectors = sectors;
|
bmds->total_sectors = sectors;
|
||||||
|
@ -465,7 +465,7 @@ static int mig_save_device_dirty(QEMUFile *f, BlkMigDevState *bmds,
|
||||||
} else {
|
} else {
|
||||||
nr_sectors = BDRV_SECTORS_PER_DIRTY_CHUNK;
|
nr_sectors = BDRV_SECTORS_PER_DIRTY_CHUNK;
|
||||||
}
|
}
|
||||||
blk = g_malloc(sizeof(BlkMigBlock));
|
blk = g_new(BlkMigBlock, 1);
|
||||||
blk->buf = g_malloc(BLOCK_SIZE);
|
blk->buf = g_malloc(BLOCK_SIZE);
|
||||||
blk->bmds = bmds;
|
blk->bmds = bmds;
|
||||||
blk->sector = sector;
|
blk->sector = sector;
|
||||||
|
|
14
block.c
14
block.c
|
@ -351,7 +351,7 @@ BlockDriverState *bdrv_new(const char *device_name, Error **errp)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bs = g_malloc0(sizeof(BlockDriverState));
|
bs = g_new0(BlockDriverState, 1);
|
||||||
QLIST_INIT(&bs->dirty_bitmaps);
|
QLIST_INIT(&bs->dirty_bitmaps);
|
||||||
pstrcpy(bs->device_name, sizeof(bs->device_name), device_name);
|
pstrcpy(bs->device_name, sizeof(bs->device_name), device_name);
|
||||||
if (device_name[0] != '\0') {
|
if (device_name[0] != '\0') {
|
||||||
|
@ -2628,7 +2628,7 @@ int bdrv_drop_intermediate(BlockDriverState *active, BlockDriverState *top,
|
||||||
* into our deletion queue, until we hit the 'base'
|
* into our deletion queue, until we hit the 'base'
|
||||||
*/
|
*/
|
||||||
while (intermediate) {
|
while (intermediate) {
|
||||||
intermediate_state = g_malloc0(sizeof(BlkIntermediateStates));
|
intermediate_state = g_new0(BlkIntermediateStates, 1);
|
||||||
intermediate_state->bs = intermediate;
|
intermediate_state->bs = intermediate;
|
||||||
QSIMPLEQ_INSERT_TAIL(&states_to_delete, intermediate_state, entry);
|
QSIMPLEQ_INSERT_TAIL(&states_to_delete, intermediate_state, entry);
|
||||||
|
|
||||||
|
@ -3755,7 +3755,7 @@ void bdrv_iterate_format(void (*it)(void *opaque, const char *name),
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!found) {
|
if (!found) {
|
||||||
formats = g_realloc(formats, (count + 1) * sizeof(char *));
|
formats = g_renew(const char *, formats, count + 1);
|
||||||
formats[count++] = drv->format_name;
|
formats[count++] = drv->format_name;
|
||||||
it(opaque, drv->format_name);
|
it(opaque, drv->format_name);
|
||||||
}
|
}
|
||||||
|
@ -5330,7 +5330,7 @@ BdrvDirtyBitmap *bdrv_create_dirty_bitmap(BlockDriverState *bs, int granularity,
|
||||||
errno = -bitmap_size;
|
errno = -bitmap_size;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
bitmap = g_malloc0(sizeof(BdrvDirtyBitmap));
|
bitmap = g_new0(BdrvDirtyBitmap, 1);
|
||||||
bitmap->bitmap = hbitmap_alloc(bitmap_size, ffs(granularity) - 1);
|
bitmap->bitmap = hbitmap_alloc(bitmap_size, ffs(granularity) - 1);
|
||||||
QLIST_INSERT_HEAD(&bs->dirty_bitmaps, bitmap, list);
|
QLIST_INSERT_HEAD(&bs->dirty_bitmaps, bitmap, list);
|
||||||
return bitmap;
|
return bitmap;
|
||||||
|
@ -5356,8 +5356,8 @@ BlockDirtyInfoList *bdrv_query_dirty_bitmaps(BlockDriverState *bs)
|
||||||
BlockDirtyInfoList **plist = &list;
|
BlockDirtyInfoList **plist = &list;
|
||||||
|
|
||||||
QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) {
|
QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) {
|
||||||
BlockDirtyInfo *info = g_malloc0(sizeof(BlockDirtyInfo));
|
BlockDirtyInfo *info = g_new0(BlockDirtyInfo, 1);
|
||||||
BlockDirtyInfoList *entry = g_malloc0(sizeof(BlockDirtyInfoList));
|
BlockDirtyInfoList *entry = g_new0(BlockDirtyInfoList, 1);
|
||||||
info->count = bdrv_get_dirty_count(bs, bm);
|
info->count = bdrv_get_dirty_count(bs, bm);
|
||||||
info->granularity =
|
info->granularity =
|
||||||
((int64_t) BDRV_SECTOR_SIZE << hbitmap_granularity(bm->bitmap));
|
((int64_t) BDRV_SECTOR_SIZE << hbitmap_granularity(bm->bitmap));
|
||||||
|
@ -5451,7 +5451,7 @@ void bdrv_op_block(BlockDriverState *bs, BlockOpType op, Error *reason)
|
||||||
BdrvOpBlocker *blocker;
|
BdrvOpBlocker *blocker;
|
||||||
assert((int) op >= 0 && op < BLOCK_OP_TYPE_MAX);
|
assert((int) op >= 0 && op < BLOCK_OP_TYPE_MAX);
|
||||||
|
|
||||||
blocker = g_malloc0(sizeof(BdrvOpBlocker));
|
blocker = g_new0(BdrvOpBlocker, 1);
|
||||||
blocker->reason = reason;
|
blocker->reason = reason;
|
||||||
QLIST_INSERT_HEAD(&bs->op_blockers[op], blocker, list);
|
QLIST_INSERT_HEAD(&bs->op_blockers[op], blocker, list);
|
||||||
}
|
}
|
||||||
|
|
|
@ -750,7 +750,7 @@ static int archipelago_submit_request(BDRVArchipelagoState *s,
|
||||||
char *target;
|
char *target;
|
||||||
void *data = NULL;
|
void *data = NULL;
|
||||||
struct xseg_request *req;
|
struct xseg_request *req;
|
||||||
AIORequestData *reqdata = g_malloc(sizeof(AIORequestData));
|
AIORequestData *reqdata = g_new(AIORequestData, 1);
|
||||||
|
|
||||||
targetlen = strlen(s->volname);
|
targetlen = strlen(s->volname);
|
||||||
req = xseg_get_request(s->xseg, s->srcport, s->vportno, X_ALLOC);
|
req = xseg_get_request(s->xseg, s->srcport, s->vportno, X_ALLOC);
|
||||||
|
@ -827,7 +827,7 @@ static int archipelago_aio_segmented_rw(BDRVArchipelagoState *s,
|
||||||
int i, ret, segments_nr, last_segment_size;
|
int i, ret, segments_nr, last_segment_size;
|
||||||
ArchipelagoSegmentedRequest *segreq;
|
ArchipelagoSegmentedRequest *segreq;
|
||||||
|
|
||||||
segreq = g_malloc(sizeof(ArchipelagoSegmentedRequest));
|
segreq = g_new(ArchipelagoSegmentedRequest, 1);
|
||||||
|
|
||||||
if (op == ARCHIP_OP_FLUSH) {
|
if (op == ARCHIP_OP_FLUSH) {
|
||||||
segments_nr = 1;
|
segments_nr = 1;
|
||||||
|
@ -960,7 +960,7 @@ static int64_t archipelago_volume_info(BDRVArchipelagoState *s)
|
||||||
int ret, targetlen;
|
int ret, targetlen;
|
||||||
struct xseg_request *req;
|
struct xseg_request *req;
|
||||||
struct xseg_reply_info *xinfo;
|
struct xseg_reply_info *xinfo;
|
||||||
AIORequestData *reqdata = g_malloc(sizeof(AIORequestData));
|
AIORequestData *reqdata = g_new(AIORequestData, 1);
|
||||||
|
|
||||||
const char *volname = s->volname;
|
const char *volname = s->volname;
|
||||||
targetlen = strlen(volname);
|
targetlen = strlen(volname);
|
||||||
|
|
|
@ -291,7 +291,7 @@ static int qemu_gluster_open(BlockDriverState *bs, QDict *options,
|
||||||
BDRVGlusterState *s = bs->opaque;
|
BDRVGlusterState *s = bs->opaque;
|
||||||
int open_flags = 0;
|
int open_flags = 0;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
GlusterConf *gconf = g_malloc0(sizeof(GlusterConf));
|
GlusterConf *gconf = g_new0(GlusterConf, 1);
|
||||||
QemuOpts *opts;
|
QemuOpts *opts;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
const char *filename;
|
const char *filename;
|
||||||
|
@ -351,12 +351,12 @@ static int qemu_gluster_reopen_prepare(BDRVReopenState *state,
|
||||||
assert(state != NULL);
|
assert(state != NULL);
|
||||||
assert(state->bs != NULL);
|
assert(state->bs != NULL);
|
||||||
|
|
||||||
state->opaque = g_malloc0(sizeof(BDRVGlusterReopenState));
|
state->opaque = g_new0(BDRVGlusterReopenState, 1);
|
||||||
reop_s = state->opaque;
|
reop_s = state->opaque;
|
||||||
|
|
||||||
qemu_gluster_parse_flags(state->flags, &open_flags);
|
qemu_gluster_parse_flags(state->flags, &open_flags);
|
||||||
|
|
||||||
gconf = g_malloc0(sizeof(GlusterConf));
|
gconf = g_new0(GlusterConf, 1);
|
||||||
|
|
||||||
reop_s->glfs = qemu_gluster_init(gconf, state->bs->filename, errp);
|
reop_s->glfs = qemu_gluster_init(gconf, state->bs->filename, errp);
|
||||||
if (reop_s->glfs == NULL) {
|
if (reop_s->glfs == NULL) {
|
||||||
|
@ -486,7 +486,7 @@ static int qemu_gluster_create(const char *filename,
|
||||||
int prealloc = 0;
|
int prealloc = 0;
|
||||||
int64_t total_size = 0;
|
int64_t total_size = 0;
|
||||||
char *tmp = NULL;
|
char *tmp = NULL;
|
||||||
GlusterConf *gconf = g_malloc0(sizeof(GlusterConf));
|
GlusterConf *gconf = g_new0(GlusterConf, 1);
|
||||||
|
|
||||||
glfs = qemu_gluster_init(gconf, filename, errp);
|
glfs = qemu_gluster_init(gconf, filename, errp);
|
||||||
if (!glfs) {
|
if (!glfs) {
|
||||||
|
|
|
@ -1532,7 +1532,7 @@ static int iscsi_create(const char *filename, QemuOpts *opts, Error **errp)
|
||||||
/* Read out options */
|
/* Read out options */
|
||||||
total_size =
|
total_size =
|
||||||
qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0) / BDRV_SECTOR_SIZE;
|
qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0) / BDRV_SECTOR_SIZE;
|
||||||
bs->opaque = g_malloc0(sizeof(struct IscsiLun));
|
bs->opaque = g_new0(struct IscsiLun, 1);
|
||||||
iscsilun = bs->opaque;
|
iscsilun = bs->opaque;
|
||||||
|
|
||||||
bs_options = qdict_new();
|
bs_options = qdict_new();
|
||||||
|
|
|
@ -409,7 +409,7 @@ static int nfs_file_create(const char *url, QemuOpts *opts, Error **errp)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int64_t total_size = 0;
|
int64_t total_size = 0;
|
||||||
NFSClient *client = g_malloc0(sizeof(NFSClient));
|
NFSClient *client = g_new0(NFSClient, 1);
|
||||||
|
|
||||||
client->aio_context = qemu_get_aio_context();
|
client->aio_context = qemu_get_aio_context();
|
||||||
|
|
||||||
|
|
|
@ -182,7 +182,7 @@ static int qcow_open(BlockDriverState *bs, QDict *options, int flags,
|
||||||
}
|
}
|
||||||
|
|
||||||
s->l1_table_offset = header.l1_table_offset;
|
s->l1_table_offset = header.l1_table_offset;
|
||||||
s->l1_table = g_try_malloc(s->l1_size * sizeof(uint64_t));
|
s->l1_table = g_try_new(uint64_t, s->l1_size);
|
||||||
if (s->l1_table == NULL) {
|
if (s->l1_table == NULL) {
|
||||||
error_setg(errp, "Could not allocate memory for L1 table");
|
error_setg(errp, "Could not allocate memory for L1 table");
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
|
|
@ -711,7 +711,7 @@ int qcow2_alloc_cluster_link_l2(BlockDriverState *bs, QCowL2Meta *m)
|
||||||
trace_qcow2_cluster_link_l2(qemu_coroutine_self(), m->nb_clusters);
|
trace_qcow2_cluster_link_l2(qemu_coroutine_self(), m->nb_clusters);
|
||||||
assert(m->nb_clusters > 0);
|
assert(m->nb_clusters > 0);
|
||||||
|
|
||||||
old_cluster = g_try_malloc(m->nb_clusters * sizeof(uint64_t));
|
old_cluster = g_try_new(uint64_t, m->nb_clusters);
|
||||||
if (old_cluster == NULL) {
|
if (old_cluster == NULL) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto err;
|
goto err;
|
||||||
|
|
|
@ -350,7 +350,7 @@ static int alloc_refcount_block(BlockDriverState *bs,
|
||||||
uint64_t meta_offset = (blocks_used * refcount_block_clusters) *
|
uint64_t meta_offset = (blocks_used * refcount_block_clusters) *
|
||||||
s->cluster_size;
|
s->cluster_size;
|
||||||
uint64_t table_offset = meta_offset + blocks_clusters * s->cluster_size;
|
uint64_t table_offset = meta_offset + blocks_clusters * s->cluster_size;
|
||||||
uint64_t *new_table = g_try_malloc0(table_size * sizeof(uint64_t));
|
uint64_t *new_table = g_try_new0(uint64_t, table_size);
|
||||||
uint16_t *new_blocks = g_try_malloc0(blocks_clusters * s->cluster_size);
|
uint16_t *new_blocks = g_try_malloc0(blocks_clusters * s->cluster_size);
|
||||||
|
|
||||||
assert(table_size > 0 && blocks_clusters > 0);
|
assert(table_size > 0 && blocks_clusters > 0);
|
||||||
|
@ -1524,7 +1524,7 @@ int qcow2_check_refcounts(BlockDriverState *bs, BdrvCheckResult *res,
|
||||||
return -EFBIG;
|
return -EFBIG;
|
||||||
}
|
}
|
||||||
|
|
||||||
refcount_table = g_try_malloc0(nb_clusters * sizeof(uint16_t));
|
refcount_table = g_try_new0(uint16_t, nb_clusters);
|
||||||
if (nb_clusters && refcount_table == NULL) {
|
if (nb_clusters && refcount_table == NULL) {
|
||||||
res->check_errors++;
|
res->check_errors++;
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -1605,8 +1605,8 @@ int qcow2_check_refcounts(BlockDriverState *bs, BdrvCheckResult *res,
|
||||||
/* increase refcount_table size if necessary */
|
/* increase refcount_table size if necessary */
|
||||||
int old_nb_clusters = nb_clusters;
|
int old_nb_clusters = nb_clusters;
|
||||||
nb_clusters = (new_offset >> s->cluster_bits) + 1;
|
nb_clusters = (new_offset >> s->cluster_bits) + 1;
|
||||||
refcount_table = g_realloc(refcount_table,
|
refcount_table = g_renew(uint16_t, refcount_table,
|
||||||
nb_clusters * sizeof(uint16_t));
|
nb_clusters);
|
||||||
memset(&refcount_table[old_nb_clusters], 0, (nb_clusters
|
memset(&refcount_table[old_nb_clusters], 0, (nb_clusters
|
||||||
- old_nb_clusters) * sizeof(uint16_t));
|
- old_nb_clusters) * sizeof(uint16_t));
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ int qcow2_read_snapshots(BlockDriverState *bs)
|
||||||
}
|
}
|
||||||
|
|
||||||
offset = s->snapshots_offset;
|
offset = s->snapshots_offset;
|
||||||
s->snapshots = g_malloc0(s->nb_snapshots * sizeof(QCowSnapshot));
|
s->snapshots = g_new0(QCowSnapshot, s->nb_snapshots);
|
||||||
|
|
||||||
for(i = 0; i < s->nb_snapshots; i++) {
|
for(i = 0; i < s->nb_snapshots; i++) {
|
||||||
/* Read statically sized part of the snapshot header */
|
/* Read statically sized part of the snapshot header */
|
||||||
|
@ -381,7 +381,7 @@ int qcow2_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info)
|
||||||
sn->l1_table_offset = l1_table_offset;
|
sn->l1_table_offset = l1_table_offset;
|
||||||
sn->l1_size = s->l1_size;
|
sn->l1_size = s->l1_size;
|
||||||
|
|
||||||
l1_table = g_try_malloc(s->l1_size * sizeof(uint64_t));
|
l1_table = g_try_new(uint64_t, s->l1_size);
|
||||||
if (s->l1_size && l1_table == NULL) {
|
if (s->l1_size && l1_table == NULL) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto fail;
|
goto fail;
|
||||||
|
@ -417,7 +417,7 @@ int qcow2_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Append the new snapshot to the snapshot list */
|
/* Append the new snapshot to the snapshot list */
|
||||||
new_snapshot_list = g_malloc((s->nb_snapshots + 1) * sizeof(QCowSnapshot));
|
new_snapshot_list = g_new(QCowSnapshot, s->nb_snapshots + 1);
|
||||||
if (s->snapshots) {
|
if (s->snapshots) {
|
||||||
memcpy(new_snapshot_list, s->snapshots,
|
memcpy(new_snapshot_list, s->snapshots,
|
||||||
s->nb_snapshots * sizeof(QCowSnapshot));
|
s->nb_snapshots * sizeof(QCowSnapshot));
|
||||||
|
@ -661,7 +661,7 @@ int qcow2_snapshot_list(BlockDriverState *bs, QEMUSnapshotInfo **psn_tab)
|
||||||
return s->nb_snapshots;
|
return s->nb_snapshots;
|
||||||
}
|
}
|
||||||
|
|
||||||
sn_tab = g_malloc0(s->nb_snapshots * sizeof(QEMUSnapshotInfo));
|
sn_tab = g_new0(QEMUSnapshotInfo, s->nb_snapshots);
|
||||||
for(i = 0; i < s->nb_snapshots; i++) {
|
for(i = 0; i < s->nb_snapshots; i++) {
|
||||||
sn_info = sn_tab + i;
|
sn_info = sn_tab + i;
|
||||||
sn = s->snapshots + i;
|
sn = s->snapshots + i;
|
||||||
|
|
|
@ -517,7 +517,7 @@ static int raw_reopen_prepare(BDRVReopenState *state,
|
||||||
|
|
||||||
s = state->bs->opaque;
|
s = state->bs->opaque;
|
||||||
|
|
||||||
state->opaque = g_malloc0(sizeof(BDRVRawReopenState));
|
state->opaque = g_new0(BDRVRawReopenState, 1);
|
||||||
raw_s = state->opaque;
|
raw_s = state->opaque;
|
||||||
|
|
||||||
#ifdef CONFIG_LINUX_AIO
|
#ifdef CONFIG_LINUX_AIO
|
||||||
|
|
|
@ -652,7 +652,7 @@ static BlockDriverAIOCB *rbd_start_aio(BlockDriverState *bs,
|
||||||
off = sector_num * BDRV_SECTOR_SIZE;
|
off = sector_num * BDRV_SECTOR_SIZE;
|
||||||
size = nb_sectors * BDRV_SECTOR_SIZE;
|
size = nb_sectors * BDRV_SECTOR_SIZE;
|
||||||
|
|
||||||
rcb = g_malloc(sizeof(RADOSCB));
|
rcb = g_new(RADOSCB, 1);
|
||||||
rcb->done = 0;
|
rcb->done = 0;
|
||||||
rcb->acb = acb;
|
rcb->acb = acb;
|
||||||
rcb->buf = buf;
|
rcb->buf = buf;
|
||||||
|
@ -873,7 +873,7 @@ static int qemu_rbd_snap_list(BlockDriverState *bs,
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
sn_tab = g_malloc0(snap_count * sizeof(QEMUSnapshotInfo));
|
sn_tab = g_new0(QEMUSnapshotInfo, snap_count);
|
||||||
|
|
||||||
for (i = 0; i < snap_count; i++) {
|
for (i = 0; i < snap_count; i++) {
|
||||||
const char *snap_name = snaps[i].name;
|
const char *snap_name = snaps[i].name;
|
||||||
|
|
|
@ -1682,7 +1682,7 @@ static int sd_create(const char *filename, QemuOpts *opts,
|
||||||
uint32_t snapid;
|
uint32_t snapid;
|
||||||
bool prealloc = false;
|
bool prealloc = false;
|
||||||
|
|
||||||
s = g_malloc0(sizeof(BDRVSheepdogState));
|
s = g_new0(BDRVSheepdogState, 1);
|
||||||
|
|
||||||
memset(tag, 0, sizeof(tag));
|
memset(tag, 0, sizeof(tag));
|
||||||
if (strstr(filename, "://")) {
|
if (strstr(filename, "://")) {
|
||||||
|
@ -2273,7 +2273,7 @@ static int sd_snapshot_goto(BlockDriverState *bs, const char *snapshot_id)
|
||||||
uint32_t snapid = 0;
|
uint32_t snapid = 0;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
old_s = g_malloc(sizeof(BDRVSheepdogState));
|
old_s = g_new(BDRVSheepdogState, 1);
|
||||||
|
|
||||||
memcpy(old_s, s, sizeof(BDRVSheepdogState));
|
memcpy(old_s, s, sizeof(BDRVSheepdogState));
|
||||||
|
|
||||||
|
|
|
@ -292,7 +292,7 @@ static int vdi_check(BlockDriverState *bs, BdrvCheckResult *res,
|
||||||
return -ENOTSUP;
|
return -ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
bmap = g_try_malloc(s->header.blocks_in_image * sizeof(uint32_t));
|
bmap = g_try_new(uint32_t, s->header.blocks_in_image);
|
||||||
if (s->header.blocks_in_image && bmap == NULL) {
|
if (s->header.blocks_in_image && bmap == NULL) {
|
||||||
res->check_errors++;
|
res->check_errors++;
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
|
@ -1381,7 +1381,7 @@ static int vhdx_create_new_headers(BlockDriverState *bs, uint64_t image_size,
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
VHDXHeader *hdr = NULL;
|
VHDXHeader *hdr = NULL;
|
||||||
|
|
||||||
hdr = g_malloc0(sizeof(VHDXHeader));
|
hdr = g_new0(VHDXHeader, 1);
|
||||||
|
|
||||||
hdr->signature = VHDX_HEADER_SIGNATURE;
|
hdr->signature = VHDX_HEADER_SIGNATURE;
|
||||||
hdr->sequence_number = g_random_int();
|
hdr->sequence_number = g_random_int();
|
||||||
|
@ -1654,7 +1654,7 @@ static int vhdx_create_new_region_table(BlockDriverState *bs,
|
||||||
|
|
||||||
/* Populate enough of the BDRVVHDXState to be able to use the
|
/* Populate enough of the BDRVVHDXState to be able to use the
|
||||||
* pre-existing BAT calculation, translation, and update functions */
|
* pre-existing BAT calculation, translation, and update functions */
|
||||||
s = g_malloc0(sizeof(BDRVVHDXState));
|
s = g_new0(BDRVVHDXState, 1);
|
||||||
|
|
||||||
s->chunk_ratio = (VHDX_MAX_SECTORS_PER_BLOCK) *
|
s->chunk_ratio = (VHDX_MAX_SECTORS_PER_BLOCK) *
|
||||||
(uint64_t) sector_size / (uint64_t) block_size;
|
(uint64_t) sector_size / (uint64_t) block_size;
|
||||||
|
|
|
@ -233,7 +233,7 @@ static void vmdk_free_last_extent(BlockDriverState *bs)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
s->num_extents--;
|
s->num_extents--;
|
||||||
s->extents = g_realloc(s->extents, s->num_extents * sizeof(VmdkExtent));
|
s->extents = g_renew(VmdkExtent, s->extents, s->num_extents);
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t vmdk_read_cid(BlockDriverState *bs, int parent)
|
static uint32_t vmdk_read_cid(BlockDriverState *bs, int parent)
|
||||||
|
@ -418,8 +418,7 @@ static int vmdk_add_extent(BlockDriverState *bs,
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
s->extents = g_realloc(s->extents,
|
s->extents = g_renew(VmdkExtent, s->extents, s->num_extents + 1);
|
||||||
(s->num_extents + 1) * sizeof(VmdkExtent));
|
|
||||||
extent = &s->extents[s->num_extents];
|
extent = &s->extents[s->num_extents];
|
||||||
s->num_extents++;
|
s->num_extents++;
|
||||||
|
|
||||||
|
@ -497,7 +496,7 @@ static int vmdk_init_tables(BlockDriverState *bs, VmdkExtent *extent,
|
||||||
}
|
}
|
||||||
|
|
||||||
extent->l2_cache =
|
extent->l2_cache =
|
||||||
g_malloc(extent->l2_size * L2_CACHE_SIZE * sizeof(uint32_t));
|
g_new(uint32_t, extent->l2_size * L2_CACHE_SIZE);
|
||||||
return 0;
|
return 0;
|
||||||
fail_l1b:
|
fail_l1b:
|
||||||
g_free(extent->l1_backup_table);
|
g_free(extent->l1_backup_table);
|
||||||
|
|
|
@ -2950,7 +2950,7 @@ static int enable_write_target(BDRVVVFATState *s, Error **errp)
|
||||||
|
|
||||||
bdrv_set_backing_hd(s->bs, bdrv_new("", &error_abort));
|
bdrv_set_backing_hd(s->bs, bdrv_new("", &error_abort));
|
||||||
s->bs->backing_hd->drv = &vvfat_write_target;
|
s->bs->backing_hd->drv = &vvfat_write_target;
|
||||||
s->bs->backing_hd->opaque = g_malloc(sizeof(void*));
|
s->bs->backing_hd->opaque = g_new(void *, 1);
|
||||||
*(void**)s->bs->backing_hd->opaque = s;
|
*(void**)s->bs->backing_hd->opaque = s;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -108,7 +108,7 @@ void qmp_nbd_server_add(const char *device, bool has_writable, bool writable,
|
||||||
|
|
||||||
nbd_export_set_name(exp, device);
|
nbd_export_set_name(exp, device);
|
||||||
|
|
||||||
n = g_malloc0(sizeof(NBDCloseNotifier));
|
n = g_new0(NBDCloseNotifier, 1);
|
||||||
n->n.notify = nbd_close_notifier;
|
n->n.notify = nbd_close_notifier;
|
||||||
n->exp = exp;
|
n->exp = exp;
|
||||||
bdrv_add_close_notifier(bs, &n->n);
|
bdrv_add_close_notifier(bs, &n->n);
|
||||||
|
|
|
@ -1094,7 +1094,7 @@ SnapshotInfo *qmp_blockdev_snapshot_delete_internal_sync(const char *device,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
info = g_malloc0(sizeof(SnapshotInfo));
|
info = g_new0(SnapshotInfo, 1);
|
||||||
info->id = g_strdup(sn.id_str);
|
info->id = g_strdup(sn.id_str);
|
||||||
info->name = g_strdup(sn.name);
|
info->name = g_strdup(sn.name);
|
||||||
info->date_nsec = sn.date_nsec;
|
info->date_nsec = sn.date_nsec;
|
||||||
|
|
|
@ -1203,7 +1203,7 @@ void ahci_init(AHCIState *s, DeviceState *qdev, AddressSpace *as, int ports)
|
||||||
|
|
||||||
s->as = as;
|
s->as = as;
|
||||||
s->ports = ports;
|
s->ports = ports;
|
||||||
s->dev = g_malloc0(sizeof(AHCIDevice) * ports);
|
s->dev = g_new0(AHCIDevice, ports);
|
||||||
ahci_reg_init(s);
|
ahci_reg_init(s);
|
||||||
/* XXX BAR size should be 1k, but that breaks, so bump it to 4k for now */
|
/* XXX BAR size should be 1k, but that breaks, so bump it to 4k for now */
|
||||||
memory_region_init_io(&s->mem, OBJECT(qdev), &ahci_mem_ops, s,
|
memory_region_init_io(&s->mem, OBJECT(qdev), &ahci_mem_ops, s,
|
||||||
|
|
|
@ -114,7 +114,7 @@ static char **breakline(char *input, int *count)
|
||||||
{
|
{
|
||||||
int c = 0;
|
int c = 0;
|
||||||
char *p;
|
char *p;
|
||||||
char **rval = g_malloc0(sizeof(char *));
|
char **rval = g_new0(char *, 1);
|
||||||
char **tmp;
|
char **tmp;
|
||||||
|
|
||||||
while (rval && (p = qemu_strsep(&input, " ")) != NULL) {
|
while (rval && (p = qemu_strsep(&input, " ")) != NULL) {
|
||||||
|
|
|
@ -356,7 +356,7 @@ static void command_loop(void)
|
||||||
|
|
||||||
static void add_user_command(char *optarg)
|
static void add_user_command(char *optarg)
|
||||||
{
|
{
|
||||||
cmdline = g_realloc(cmdline, ++ncmdline * sizeof(char *));
|
cmdline = g_renew(char *, cmdline, ++ncmdline);
|
||||||
cmdline[ncmdline-1] = optarg;
|
cmdline[ncmdline-1] = optarg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue