[libvirt PATCH 0/4] vbox: use g_new0 (glib chronicles)

Ján Tomko (4): vbox: use g_new0 in vboxDumpAudio vbox: invert condition in vboxSnapshotGetReadOnlyDisks vbox: refactor vboxNetworkGetXMLDesc a bit vbox: use g_new0 instead of VIR_ALLOC src/vbox/vbox_common.c | 119 ++++++++++++---------------------- src/vbox/vbox_network.c | 107 ++++++++++++++---------------- src/vbox/vbox_snapshot_conf.c | 48 ++++++-------- 3 files changed, 110 insertions(+), 164 deletions(-) -- 2.26.2

Elimination of the positive conditions reduces the indentation by two levels. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/vbox/vbox_common.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index 9f6ef2f2ac..45fd670a11 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -3798,20 +3798,16 @@ vboxDumpAudio(virDomainDefPtr def, vboxDriverPtr data G_GNUC_UNUSED, PRUint32 audioController = AudioControllerType_AC97; def->nsounds = 1; - if (VIR_ALLOC_N(def->sounds, def->nsounds) >= 0) { - if (VIR_ALLOC(def->sounds[0]) >= 0) { - gVBoxAPI.UIAudioAdapter.GetAudioController(audioAdapter, &audioController); - if (audioController == AudioControllerType_SB16) { - def->sounds[0]->model = VIR_DOMAIN_SOUND_MODEL_SB16; - } else if (audioController == AudioControllerType_AC97) { - def->sounds[0]->model = VIR_DOMAIN_SOUND_MODEL_AC97; - } - } else { - VIR_FREE(def->sounds); - def->nsounds = 0; - } - } else { - def->nsounds = 0; + if (VIR_ALLOC_N(def->sounds, def->nsounds) < 0) + return; + if (VIR_ALLOC(def->sounds[0]) < 0) + return; + + gVBoxAPI.UIAudioAdapter.GetAudioController(audioAdapter, &audioController); + if (audioController == AudioControllerType_SB16) { + def->sounds[0]->model = VIR_DOMAIN_SOUND_MODEL_SB16; + } else if (audioController == AudioControllerType_AC97) { + def->sounds[0]->model = VIR_DOMAIN_SOUND_MODEL_AC97; } } VBOX_RELEASE(audioAdapter); -- 2.26.2

On Mon, Oct 05, 2020 at 12:22:23AM +0200, Ján Tomko wrote:
Elimination of the positive conditions reduces the indentation by two levels.
Signed-off-by: Ján Tomko <jtomko@redhat.com> ---
No g_new0 was introduced by this commit, so the subject should be adjusted to reflect the true nature of the patch. Reviewed-by: Erik Skultety <eskultet@redhat.com>

Error out on (impossible) failed allocation, to reduce indentation. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/vbox/vbox_common.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index 45fd670a11..f59af697ea 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -5971,15 +5971,14 @@ vboxSnapshotGetReadOnlyDisks(virDomainSnapshotDefPtr def, } /* Allocate mem, if fails return error */ - if (VIR_ALLOC_N(defdom->disks, defdom->ndisks) >= 0) { - for (i = 0; i < defdom->ndisks; i++) { - virDomainDiskDefPtr diskDef = virDomainDiskDefNew(NULL); - if (!diskDef) - goto cleanup; - defdom->disks[i] = diskDef; - } - } else { + if (VIR_ALLOC_N(defdom->disks, defdom->ndisks) < 0) goto cleanup; + + for (i = 0; i < defdom->ndisks; i++) { + virDomainDiskDefPtr diskDef = virDomainDiskDefNew(NULL); + if (!diskDef) + goto cleanup; + defdom->disks[i] = diskDef; } /* get the attachment details here */ -- 2.26.2

Error out on allocation failure to reduce the nesting. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/vbox/vbox_network.c | 102 +++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 53 deletions(-) diff --git a/src/vbox/vbox_network.c b/src/vbox/vbox_network.c index dafbc114f6..ceffc2053d 100644 --- a/src/vbox/vbox_network.c +++ b/src/vbox/vbox_network.c @@ -821,69 +821,65 @@ static char *vboxNetworkGetXMLDesc(virNetworkPtr network, unsigned int flags) networkNameUtf16, &dhcpServer); if (dhcpServer) { + PRUnichar *ipAddressUtf16 = NULL; + PRUnichar *networkMaskUtf16 = NULL; + PRUnichar *fromIPAddressUtf16 = NULL; + PRUnichar *toIPAddressUtf16 = NULL; + PRUnichar *macAddressUtf16 = NULL; + bool errorOccurred = false; + ipdef->nranges = 1; - if (VIR_ALLOC_N(ipdef->ranges, ipdef->nranges) >= 0) { - PRUnichar *ipAddressUtf16 = NULL; - PRUnichar *networkMaskUtf16 = NULL; - PRUnichar *fromIPAddressUtf16 = NULL; - PRUnichar *toIPAddressUtf16 = NULL; - bool errorOccurred = false; - gVBoxAPI.UIDHCPServer.GetIPAddress(dhcpServer, &ipAddressUtf16); - gVBoxAPI.UIDHCPServer.GetNetworkMask(dhcpServer, &networkMaskUtf16); - gVBoxAPI.UIDHCPServer.GetLowerIP(dhcpServer, &fromIPAddressUtf16); - gVBoxAPI.UIDHCPServer.GetUpperIP(dhcpServer, &toIPAddressUtf16); - /* Currently virtualbox supports only one dhcp server per network - * with contiguous address space from start to end - */ - addr = ipdef->ranges[0].addr; - if (vboxSocketParseAddrUtf16(data, ipAddressUtf16, - &ipdef->address) < 0 || - vboxSocketParseAddrUtf16(data, networkMaskUtf16, - &ipdef->netmask) < 0 || - vboxSocketParseAddrUtf16(data, fromIPAddressUtf16, - &addr.start) < 0 || - vboxSocketParseAddrUtf16(data, toIPAddressUtf16, - &addr.end) < 0) { - errorOccurred = true; - } + if (VIR_ALLOC_N(ipdef->ranges, ipdef->nranges) < 0) + goto cleanup; - VBOX_UTF16_FREE(ipAddressUtf16); - VBOX_UTF16_FREE(networkMaskUtf16); - VBOX_UTF16_FREE(fromIPAddressUtf16); - VBOX_UTF16_FREE(toIPAddressUtf16); - - if (errorOccurred) - goto cleanup; - } else { - ipdef->nranges = 0; + gVBoxAPI.UIDHCPServer.GetIPAddress(dhcpServer, &ipAddressUtf16); + gVBoxAPI.UIDHCPServer.GetNetworkMask(dhcpServer, &networkMaskUtf16); + gVBoxAPI.UIDHCPServer.GetLowerIP(dhcpServer, &fromIPAddressUtf16); + gVBoxAPI.UIDHCPServer.GetUpperIP(dhcpServer, &toIPAddressUtf16); + /* Currently virtualbox supports only one dhcp server per network + * with contiguous address space from start to end + */ + addr = ipdef->ranges[0].addr; + if (vboxSocketParseAddrUtf16(data, ipAddressUtf16, + &ipdef->address) < 0 || + vboxSocketParseAddrUtf16(data, networkMaskUtf16, + &ipdef->netmask) < 0 || + vboxSocketParseAddrUtf16(data, fromIPAddressUtf16, + &addr.start) < 0 || + vboxSocketParseAddrUtf16(data, toIPAddressUtf16, + &addr.end) < 0) { + errorOccurred = true; } + VBOX_UTF16_FREE(ipAddressUtf16); + VBOX_UTF16_FREE(networkMaskUtf16); + VBOX_UTF16_FREE(fromIPAddressUtf16); + VBOX_UTF16_FREE(toIPAddressUtf16); + + if (errorOccurred) + goto cleanup; + ipdef->nhosts = 1; - if (VIR_ALLOC_N(ipdef->hosts, ipdef->nhosts) >= 0) { - PRUnichar *macAddressUtf16 = NULL; - PRUnichar *ipAddressUtf16 = NULL; - bool errorOccurred = false; + if (VIR_ALLOC_N(ipdef->hosts, ipdef->nhosts) < 0) + goto cleanup; - ipdef->hosts[0].name = g_strdup(network->name); - gVBoxAPI.UIHNInterface.GetHardwareAddress(networkInterface, &macAddressUtf16); - gVBoxAPI.UIHNInterface.GetIPAddress(networkInterface, &ipAddressUtf16); + ipdef->hosts[0].name = g_strdup(network->name); + gVBoxAPI.UIHNInterface.GetHardwareAddress(networkInterface, &macAddressUtf16); + gVBoxAPI.UIHNInterface.GetIPAddress(networkInterface, &ipAddressUtf16); - VBOX_UTF16_TO_UTF8(macAddressUtf16, &ipdef->hosts[0].mac); + VBOX_UTF16_TO_UTF8(macAddressUtf16, &ipdef->hosts[0].mac); - if (vboxSocketParseAddrUtf16(data, ipAddressUtf16, - &ipdef->hosts[0].ip) < 0) { - errorOccurred = true; - } - - VBOX_UTF16_FREE(macAddressUtf16); - VBOX_UTF16_FREE(ipAddressUtf16); - - if (errorOccurred) - goto cleanup; - } else { - ipdef->nhosts = 0; + if (vboxSocketParseAddrUtf16(data, ipAddressUtf16, + &ipdef->hosts[0].ip) < 0) { + errorOccurred = true; } + + VBOX_UTF16_FREE(macAddressUtf16); + VBOX_UTF16_FREE(ipAddressUtf16); + + if (errorOccurred) + goto cleanup; } else { PRUnichar *networkMaskUtf16 = NULL; PRUnichar *ipAddressUtf16 = NULL; -- 2.26.2

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/vbox/vbox_common.c | 90 +++++++++++------------------------ src/vbox/vbox_network.c | 13 ++--- src/vbox/vbox_snapshot_conf.c | 48 ++++++++----------- 3 files changed, 53 insertions(+), 98 deletions(-) diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index f59af697ea..317fb5ce92 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -3010,8 +3010,7 @@ vboxHostDeviceGetXMLDesc(vboxDriverPtr data, virDomainDefPtr def, IMachine *mach goto release_filters; /* Alloc mem needed for the filters now */ - if (VIR_ALLOC_N(def->hostdevs, def->nhostdevs) < 0) - goto release_filters; + def->hostdevs = g_new0(virDomainHostdevDefPtr, def->nhostdevs); for (i = 0; i < def->nhostdevs; i++) { def->hostdevs[i] = virDomainHostdevDefNew(); @@ -3219,8 +3218,7 @@ vboxDumpDisks(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine) } /* Allocate mem, if fails return error */ - if (VIR_ALLOC_N(def->disks, def->ndisks) < 0) - goto cleanup; + def->disks = g_new0(virDomainDiskDefPtr, def->ndisks); for (i = 0; i < def->ndisks; i++) { disk = virDomainDiskDefNew(NULL); @@ -3452,12 +3450,10 @@ vboxDumpVideo(virDomainDefPtr def, vboxDriverPtr data G_GNUC_UNUSED, PRBool accelerate2DEnabled = PR_FALSE; /* Currently supports only one graphics card */ - if (VIR_ALLOC_N(def->videos, 1) < 0) - return -1; + def->videos = g_new0(virDomainVideoDefPtr, 1); def->nvideos = 1; - if (VIR_ALLOC(def->videos[0]) < 0) - return -1; + def->videos[0] = g_new0(virDomainVideoDef, 1); gVBoxAPI.UIMachine.GetVRAMSize(machine, &VRAMSize); gVBoxAPI.UIMachine.GetMonitorCount(machine, &monitorCount); @@ -3467,8 +3463,7 @@ vboxDumpVideo(virDomainDefPtr def, vboxDriverPtr data G_GNUC_UNUSED, def->videos[0]->type = VIR_DOMAIN_VIDEO_TYPE_VBOX; def->videos[0]->vram = VRAMSize * 1024; def->videos[0]->heads = monitorCount; - if (VIR_ALLOC(def->videos[0]->accel) < 0) - return -1; + def->videos[0]->accel = g_new0(virDomainVideoAccelDef, 1); def->videos[0]->accel->accel3d = accelerate3DEnabled ? VIR_TRISTATE_BOOL_YES : VIR_TRISTATE_BOOL_NO; def->videos[0]->accel->accel2d = accelerate2DEnabled ? @@ -3506,8 +3501,7 @@ vboxDumpDisplay(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine) PRUnichar *valueDisplayUtf16 = NULL; char *valueDisplayUtf8 = NULL; - if (VIR_ALLOC(graphics) < 0) - goto cleanup; + graphics = g_new0(virDomainGraphicsDef, 1); VBOX_UTF8_TO_UTF16("FRONTEND/Display", &keyUtf16); gVBoxAPI.UIMachine.GetExtraData(machine, keyUtf16, &valueDisplayUtf16); @@ -3534,8 +3528,7 @@ vboxDumpDisplay(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine) } VBOX_UTF8_FREE(valueDisplayUtf8); } else if (STRNEQ_NULLABLE(valueTypeUtf8, "vrdp")) { - if (VIR_ALLOC(graphics) < 0) - goto cleanup; + graphics = g_new0(virDomainGraphicsDef, 1); graphics->type = VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP; graphics->data.desktop.display = g_strdup(getenv("DISPLAY")); @@ -3554,8 +3547,7 @@ vboxDumpDisplay(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine) PRBool allowMultiConnection = PR_FALSE; PRBool reuseSingleConnection = PR_FALSE; - if (VIR_ALLOC(graphics) < 0) - goto cleanup; + graphics = g_new0(virDomainGraphicsDef, 1); gVBoxAPI.UIVRDEServer.GetPorts(data, VRDEServer, machine, graphics); @@ -3612,8 +3604,7 @@ vboxDumpSharedFolders(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine goto cleanup; } - if (VIR_ALLOC_N(def->fss, sharedFolders.count) < 0) - goto cleanup; + def->fss = g_new0(virDomainFSDefPtr, sharedFolders.count); for (i = 0; i < sharedFolders.count; i++) { ISharedFolder *sharedFolder = sharedFolders.items[i]; @@ -3798,10 +3789,8 @@ vboxDumpAudio(virDomainDefPtr def, vboxDriverPtr data G_GNUC_UNUSED, PRUint32 audioController = AudioControllerType_AC97; def->nsounds = 1; - if (VIR_ALLOC_N(def->sounds, def->nsounds) < 0) - return; - if (VIR_ALLOC(def->sounds[0]) < 0) - return; + def->sounds = g_new0(virDomainSoundDefPtr, def->nsounds); + def->sounds[0] = g_new0(virDomainSoundDef, 1); gVBoxAPI.UIAudioAdapter.GetAudioController(audioAdapter, &audioController); if (audioController == AudioControllerType_SB16) { @@ -3839,8 +3828,7 @@ vboxDumpSerial(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine, PRUin /* Allocate memory for the serial ports which are enabled */ if (def->nserials > 0) { - if (VIR_ALLOC_N(def->serials, def->nserials) < 0) - return -1; + def->serials = g_new0(virDomainChrDefPtr, def->nserials); for (i = 0; i < def->nserials; i++) { def->serials[i] = virDomainChrDefNew(NULL); @@ -3934,8 +3922,7 @@ vboxDumpParallel(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine, PRU /* Allocate memory for the parallel ports which are enabled */ if (def->nparallels > 0) { - if (VIR_ALLOC_N(def->parallels, def->nparallels) < 0) - return -1; + def->parallels = g_new0(virDomainChrDefPtr, def->nparallels); for (i = 0; i < def->nparallels; i++) { def->parallels[i] = virDomainChrDefNew(NULL); @@ -4715,10 +4702,7 @@ vboxSnapshotRedefine(virDomainPtr dom, VBOX_UTF16_TO_UTF8(formatUtf, &format); VBOX_UTF16_FREE(formatUtf); - if (VIR_ALLOC(readWriteDisk) < 0) { - VIR_FREE(formatUtf); - goto cleanup; - } + readWriteDisk = g_new0(virVBoxSnapshotConfHardDisk, 1); readWriteDisk->format = format; readWriteDisk->uuid = uuid; @@ -4855,11 +4839,7 @@ vboxSnapshotRedefine(virDomainPtr dom, goto cleanup; } - if (VIR_ALLOC(readOnlyDisk) < 0) { - VIR_FREE(uuid); - VIR_FREE(parentUuid); - goto cleanup; - } + readOnlyDisk = g_new0(virVBoxSnapshotConfHardDisk, 1); readOnlyDisk->format = format; readOnlyDisk->uuid = uuid; @@ -4953,8 +4933,7 @@ vboxSnapshotRedefine(virDomainPtr dom, /* Here, all disks are closed or deleted */ /* We are now going to create and fill the Snapshot xml struct */ - if (VIR_ALLOC(newSnapshotPtr) < 0) - goto cleanup; + newSnapshotPtr = g_new0(virVBoxSnapshotConfSnapshot, 1); if (virUUIDGenerate(snapshotUuid) < 0) goto cleanup; @@ -5088,8 +5067,7 @@ vboxSnapshotRedefine(virDomainPtr dom, } VBOX_UTF16_FREE(locationUtf16); - if (VIR_ALLOC(disk) < 0) - goto cleanup; + disk = g_new0(virVBoxSnapshotConfHardDisk, 1); rc = gVBoxAPI.UIMedium.GetFormat(medium, &formatUtf16); if (NS_FAILED(rc)) { @@ -5248,8 +5226,7 @@ vboxSnapshotRedefine(virDomainPtr dom, * media registry and the machine storage controllers. */ - if (VIR_ALLOC(newHardDisk) < 0) - goto cleanup; + newHardDisk = g_new0(virVBoxSnapshotConfHardDisk, 1); rc = gVBoxAPI.UIMedium.GetId(newMedium, &iid); if (NS_FAILED(rc)) { @@ -5559,8 +5536,7 @@ vboxDomainSnapshotGetAll(virDomainPtr dom, if (count == 0) goto out; - if (VIR_ALLOC_N(list, count) < 0) - goto error; + list = g_new0(ISnapshot *, count); rc = gVBoxAPI.UIMachine.FindSnapshot(machine, &empty, list); if (NS_FAILED(rc) || !list[0]) { @@ -5742,11 +5718,9 @@ vboxSnapshotGetReadWriteDisks(virDomainSnapshotDefPtr def, } } /* Allocate mem, if fails return error */ - if (VIR_ALLOC_N(def->disks, def->ndisks) < 0) - goto cleanup; + def->disks = g_new0(virDomainSnapshotDiskDef, def->ndisks); for (i = 0; i < def->ndisks; i++) { - if (VIR_ALLOC(def->disks[i].src) < 0) - goto cleanup; + def->disks[i].src = g_new0(virStorageSource, 1); } /* get the attachment details here */ @@ -5971,8 +5945,7 @@ vboxSnapshotGetReadOnlyDisks(virDomainSnapshotDefPtr def, } /* Allocate mem, if fails return error */ - if (VIR_ALLOC_N(defdom->disks, defdom->ndisks) < 0) - goto cleanup; + defdom->disks = g_new0(virDomainDiskDefPtr, defdom->ndisks); for (i = 0; i < defdom->ndisks; i++) { virDomainDiskDefPtr diskDef = virDomainDiskDefNew(NULL); @@ -6339,8 +6312,7 @@ static int vboxDomainSnapshotListNames(virDomainPtr dom, char **names, vboxIID empty; VBOX_IID_INITIALIZE(&empty); - if (VIR_ALLOC_N(snapshots, 1) < 0) - goto cleanup; + snapshots = g_new0(ISnapshot *, 1); rc = gVBoxAPI.UIMachine.FindSnapshot(machine, &empty, snapshots); if (NS_FAILED(rc) || !snapshots[0]) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -7015,8 +6987,7 @@ vboxDomainSnapshotDeleteMetadataOnly(virDomainSnapshotPtr snapshot) * the machine storage controller. */ - if (VIR_ALLOC(disk) < 0) - goto cleanup; + disk = g_new0(virVBoxSnapshotConfHardDisk, 1); rc = gVBoxAPI.UIMedium.GetId(newMedium, &iid); if (NS_FAILED(rc)) { @@ -7508,9 +7479,8 @@ vboxConnectListAllDomains(virConnectPtr conn, !MATCH(VIR_CONNECT_LIST_DOMAINS_NO_AUTOSTART)) || (MATCH(VIR_CONNECT_LIST_DOMAINS_MANAGEDSAVE) && !MATCH(VIR_CONNECT_LIST_DOMAINS_NO_MANAGEDSAVE))) { - if (domains && - VIR_ALLOC_N(*domains, 1) < 0) - goto cleanup; + if (domains) + *domains = g_new0(virDomainPtr, 1); ret = 0; goto cleanup; @@ -7523,9 +7493,8 @@ vboxConnectListAllDomains(virConnectPtr conn, goto cleanup; } - if (domains && - VIR_ALLOC_N(doms, machines.count + 1) < 0) - goto cleanup; + if (domains) + doms = g_new0(virDomainPtr, machines.count + 1); for (i = 0; i < machines.count; i++) { IMachine *machine = machines.items[i]; @@ -7784,8 +7753,7 @@ vboxDomainSendKey(virDomainPtr dom, keyDownCodes = (PRInt32 *) keycodes; - if (VIR_ALLOC_N(keyUpCodes, nkeycodes) < 0) - return ret; + keyUpCodes = g_new0(PRInt32, nkeycodes); /* translate keycodes to xt and generate keyup scancodes */ for (i = 0; i < nkeycodes; i++) { diff --git a/src/vbox/vbox_network.c b/src/vbox/vbox_network.c index ceffc2053d..c3c9a55248 100644 --- a/src/vbox/vbox_network.c +++ b/src/vbox/vbox_network.c @@ -785,10 +785,8 @@ static char *vboxNetworkGetXMLDesc(virNetworkPtr network, unsigned int flags) VBOX_IID_INITIALIZE(&vboxnet0IID); virCheckFlags(0, NULL); - if (VIR_ALLOC(def) < 0) - goto cleanup; - if (VIR_ALLOC(ipdef) < 0) - goto cleanup; + def = g_new0(virNetworkDef, 1); + ipdef = g_new0(virNetworkIPDef, 1); def->ips = ipdef; def->nips = 1; @@ -829,9 +827,7 @@ static char *vboxNetworkGetXMLDesc(virNetworkPtr network, unsigned int flags) bool errorOccurred = false; ipdef->nranges = 1; - - if (VIR_ALLOC_N(ipdef->ranges, ipdef->nranges) < 0) - goto cleanup; + ipdef->ranges = g_new0(virNetworkDHCPRangeDef, ipdef->nranges); gVBoxAPI.UIDHCPServer.GetIPAddress(dhcpServer, &ipAddressUtf16); gVBoxAPI.UIDHCPServer.GetNetworkMask(dhcpServer, &networkMaskUtf16); @@ -861,8 +857,7 @@ static char *vboxNetworkGetXMLDesc(virNetworkPtr network, unsigned int flags) goto cleanup; ipdef->nhosts = 1; - if (VIR_ALLOC_N(ipdef->hosts, ipdef->nhosts) < 0) - goto cleanup; + ipdef->hosts = g_new0(virNetworkDHCPHostDef, ipdef->nhosts); ipdef->hosts[0].name = g_strdup(network->name); gVBoxAPI.UIHNInterface.GetHardwareAddress(networkInterface, &macAddressUtf16); diff --git a/src/vbox/vbox_snapshot_conf.c b/src/vbox/vbox_snapshot_conf.c index a18958fcc0..cb201e777e 100644 --- a/src/vbox/vbox_snapshot_conf.c +++ b/src/vbox/vbox_snapshot_conf.c @@ -45,8 +45,8 @@ virVBoxSnapshotConfCreateVBoxSnapshotConfHardDiskPtr(xmlNodePtr diskNode, char *location = NULL; char *tmp = NULL; int n = 0; - if (VIR_ALLOC(hardDisk) < 0) - goto cleanup; + + hardDisk = g_new0(virVBoxSnapshotConfHardDisk, 1); xPathContext->node = diskNode; @@ -54,8 +54,8 @@ virVBoxSnapshotConfCreateVBoxSnapshotConfHardDiskPtr(xmlNodePtr diskNode, if (n < 0) goto cleanup; - if (n && VIR_ALLOC_N(hardDisk->children, n) < 0) - goto cleanup; + if (n) + hardDisk->children = g_new0(virVBoxSnapshotConfHardDiskPtr, n); hardDisk->nchildren = n; for (i = 0; i < hardDisk->nchildren; i++) { hardDisk->children[i] = virVBoxSnapshotConfCreateVBoxSnapshotConfHardDiskPtr(nodes[i], xPathContext, machineLocation); @@ -123,8 +123,7 @@ virVBoxSnapshotConfRetrieveMediaRegistry(xmlNodePtr mediaRegistryNode, int result = -1; int n = 0; - if (VIR_ALLOC(mediaRegistry) < 0) - goto cleanup; + mediaRegistry = g_new0(virVBoxSnapshotConfMediaRegistry, 1); xPathContext->node = mediaRegistryNode; hardDisksNode = virXPathNode("./vbox:HardDisks", xPathContext); @@ -133,8 +132,8 @@ virVBoxSnapshotConfRetrieveMediaRegistry(xmlNodePtr mediaRegistryNode, n = virXPathNodeSet("./vbox:HardDisk", xPathContext, &nodes); if (n < 0) goto cleanup; - if (n && VIR_ALLOC_N(mediaRegistry->disks, n) < 0) - goto cleanup; + if (n) + mediaRegistry->disks = g_new0(virVBoxSnapshotConfHardDiskPtr, n); mediaRegistry->ndisks = n; for (i = 0; i < mediaRegistry->ndisks; i++) { mediaRegistry->disks[i] = virVBoxSnapshotConfCreateVBoxSnapshotConfHardDiskPtr(nodes[i], @@ -154,8 +153,9 @@ virVBoxSnapshotConfRetrieveMediaRegistry(xmlNodePtr mediaRegistryNode, xPathContext, &nodes); if (n < 0) goto cleanup; - if (n && VIR_ALLOC_N(mediaRegistry->otherMedia, n) < 0) - goto cleanup; + if (n) + mediaRegistry->otherMedia = g_new0(char *, n); + mediaRegistry->notherMedia = n; for (i = 0; i < mediaRegistry->notherMedia; i++) { mediaRegistry->otherMedia[i] = virXMLNodeToString(mediaRegistryNode->doc, @@ -190,8 +190,7 @@ virVBoxSnapshotConfRetrieveSnapshot(xmlNodePtr snapshotNode, int result = -1; int n = 0; - if (VIR_ALLOC(snapshot) < 0) - goto cleanup; + snapshot = g_new0(virVBoxSnapshotConfSnapshot, 1); uuid = virXMLPropString(snapshotNode, "uuid"); /* we use virStringSearch because the uuid is between brackets */ @@ -248,8 +247,8 @@ virVBoxSnapshotConfRetrieveSnapshot(xmlNodePtr snapshotNode, n = virXPathNodeSet("./vbox:Snapshot", xPathContext, &nodes); if (n < 0) goto cleanup; - if (n && VIR_ALLOC_N(snapshot->children, n) < 0) - goto cleanup; + if (n) + snapshot->children = g_new0(virVBoxSnapshotConfSnapshotPtr, n); snapshot->nchildren = n; for (i = 0; i < snapshot->nchildren; i++) { snapshot->children[i] = virVBoxSnapshotConfRetrieveSnapshot(nodes[i], xPathContext); @@ -469,8 +468,7 @@ virVBoxSnapshotConfAllChildren(virVBoxSnapshotConfHardDiskPtr disk, size_t i = 0; size_t j = 0; - if (VIR_ALLOC_N(ret, 0) < 0) - return 0; + ret = g_new0(virVBoxSnapshotConfHardDiskPtr, 0); for (i = 0; i < disk->nchildren; i++) { tempSize = virVBoxSnapshotConfAllChildren(disk->children[i], &tempList); @@ -601,8 +599,7 @@ virVBoxSnapshotConfLoadVboxFile(const char *filePath, goto cleanup; } - if (VIR_ALLOC(machineDescription) < 0) - goto cleanup; + machineDescription = g_new0(virVBoxSnapshotConfMachine, 1); xml = virXMLParse(filePath, NULL, NULL); if (xml == NULL) { @@ -1283,8 +1280,7 @@ virVBoxSnapshotConfGetRWDisksPathsFromLibvirtXML(const char *filePath, xPathContext, &nodes)) < 0) goto cleanup; - if (VIR_ALLOC_N(ret, nodeSize) < 0) - goto cleanup; + ret = g_new0(char *, nodeSize); for (i = 0; i < nodeSize; i++) { xmlNodePtr node = nodes[i]; @@ -1346,8 +1342,7 @@ virVBoxSnapshotConfGetRODisksPathsFromLibvirtXML(const char *filePath, xPathContext, &nodes)) < 0) goto cleanup; - if (VIR_ALLOC_N(ret, nodeSize) < 0) - goto cleanup; + ret = g_new0(char *, nodeSize); for (i = 0; i < nodeSize; i++) { xmlNodePtr node = nodes[i]; @@ -1414,8 +1409,7 @@ virVBoxSnapshotConfDiskListToOpen(virVBoxSnapshotConfMachinePtr machine, } if (hardDisk == NULL) return 0; - if (VIR_ALLOC_N(ret, 1) < 0) - return 0; + ret = g_new0(virVBoxSnapshotConfHardDiskPtr, 1); returnSize = 1; ret[returnSize - 1] = hardDisk; @@ -1446,8 +1440,7 @@ virVBoxSnapshotConfRemoveFakeDisks(virVBoxSnapshotConfMachinePtr machine) virVBoxSnapshotConfHardDiskPtr *tempList = NULL; virVBoxSnapshotConfHardDiskPtr *diskList = NULL; - if (VIR_ALLOC_N(diskList, 0) < 0) - return -1; + diskList = g_new0(virVBoxSnapshotConfHardDiskPtr, 0); for (i = 0; i < machine->mediaRegistry->ndisks; i++) { tempSize = virVBoxSnapshotConfAllChildren(machine->mediaRegistry->disks[i], &tempList); @@ -1498,8 +1491,7 @@ virVBoxSnapshotConfDiskIsInMediaRegistry(virVBoxSnapshotConfMachinePtr machine, virVBoxSnapshotConfHardDiskPtr *tempList = NULL; virVBoxSnapshotConfHardDiskPtr *diskList = NULL; - if (VIR_ALLOC_N(diskList, 0) < 0) - return -1; + diskList = g_new0(virVBoxSnapshotConfHardDiskPtr, 0); for (i = 0; i < machine->mediaRegistry->ndisks; i++) { tempSize = virVBoxSnapshotConfAllChildren(machine->mediaRegistry->disks[i], &tempList); -- 2.26.2

On Mon, Oct 05, 2020 at 12:22:26AM +0200, Ján Tomko wrote:
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- ...
for (i = 0; i < sharedFolders.count; i++) { ISharedFolder *sharedFolder = sharedFolders.items[i]; @@ -3798,10 +3789,8 @@ vboxDumpAudio(virDomainDefPtr def, vboxDriverPtr data G_GNUC_UNUSED, PRUint32 audioController = AudioControllerType_AC97;
def->nsounds = 1; - if (VIR_ALLOC_N(def->sounds, def->nsounds) < 0) - return; - if (VIR_ALLOC(def->sounds[0]) < 0) - return; + def->sounds = g_new0(virDomainSoundDefPtr, def->nsounds);
just use 1 for the counter and drop the nsounds attribute initialization completely. Reviewed-by: Erik Skultety <eskultet@redhat.com>

On a Monday in 2020, Erik Skultety wrote:
On Mon, Oct 05, 2020 at 12:22:26AM +0200, Ján Tomko wrote:
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- ...
for (i = 0; i < sharedFolders.count; i++) { ISharedFolder *sharedFolder = sharedFolders.items[i]; @@ -3798,10 +3789,8 @@ vboxDumpAudio(virDomainDefPtr def, vboxDriverPtr data G_GNUC_UNUSED, PRUint32 audioController = AudioControllerType_AC97;
def->nsounds = 1; - if (VIR_ALLOC_N(def->sounds, def->nsounds) < 0) - return; - if (VIR_ALLOC(def->sounds[0]) < 0) - return; + def->sounds = g_new0(virDomainSoundDefPtr, def->nsounds);
just use 1 for the counter
I can do that.
and drop the nsounds attribute initialization completely.
def->nsounds needs to be set to 1, otherwise virDomainDefFormat would not even look at def->sounds. Jano
Reviewed-by: Erik Skultety <eskultet@redhat.com>

On Mon, Oct 05, 2020 at 01:14:51PM +0200, Ján Tomko wrote:
On a Monday in 2020, Erik Skultety wrote:
On Mon, Oct 05, 2020 at 12:22:26AM +0200, Ján Tomko wrote:
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- ...
for (i = 0; i < sharedFolders.count; i++) { ISharedFolder *sharedFolder = sharedFolders.items[i]; @@ -3798,10 +3789,8 @@ vboxDumpAudio(virDomainDefPtr def, vboxDriverPtr data G_GNUC_UNUSED, PRUint32 audioController = AudioControllerType_AC97;
def->nsounds = 1; - if (VIR_ALLOC_N(def->sounds, def->nsounds) < 0) - return; - if (VIR_ALLOC(def->sounds[0]) < 0) - return; + def->sounds = g_new0(virDomainSoundDefPtr, def->nsounds);
just use 1 for the counter
I can do that.
and drop the nsounds attribute initialization completely.
def->nsounds needs to be set to 1, otherwise virDomainDefFormat would not even look at def->sounds.
Brainfart...yes, what I actually wanted to write originally was to set def->nsounds to 1 after the allocation to follow some logical pattern, somehow ended up writing down a different thought, doesn't matter, just use 1 in the g_new0 allocator and move on :). Erik

On Mon, Oct 05, 2020 at 12:22:22AM +0200, Ján Tomko wrote:
Ján Tomko (4): vbox: use g_new0 in vboxDumpAudio vbox: invert condition in vboxSnapshotGetReadOnlyDisks vbox: refactor vboxNetworkGetXMLDesc a bit vbox: use g_new0 instead of VIR_ALLOC
src/vbox/vbox_common.c | 119 ++++++++++++---------------------- src/vbox/vbox_network.c | 107 ++++++++++++++---------------- src/vbox/vbox_snapshot_conf.c | 48 ++++++-------- 3 files changed, 110 insertions(+), 164 deletions(-)
Reviewed-by: Erik Skultety <eskultet@redhat.com>
participants (2)
-
Erik Skultety
-
Ján Tomko