From: Ján Tomko Date: Tue, 15 Jan 2019 09:17:00 +0000 (+0100) Subject: qemu_conf: split out virQEMUDriverConfigLoadNVRAMEntry X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=627595641d73220c8b517881323d66dace650758;p=libvirt.git qemu_conf: split out virQEMUDriverConfigLoadNVRAMEntry Split out parts of the config parsing code to make the parent function easier to read. Signed-off-by: Ján Tomko Reviewed-by: John Ferlan --- diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 78b8c42a65..457d68109e 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -423,6 +423,38 @@ virQEMUDriverConfigHugeTLBFSInit(virHugeTLBFSPtr hugetlbfs, } +static int +virQEMUDriverConfigLoadNVRAMEntry(virQEMUDriverConfigPtr cfg, + virConfPtr conf) +{ + char **nvram = NULL; + int ret = -1; + size_t i; + + if (virConfGetValueStringList(conf, "nvram", false, &nvram) < 0) + goto cleanup; + if (nvram) { + virFirmwareFreeList(cfg->firmwares, cfg->nfirmwares); + + cfg->nfirmwares = virStringListLength((const char *const *)nvram); + if (nvram[0] && VIR_ALLOC_N(cfg->firmwares, cfg->nfirmwares) < 0) + goto cleanup; + + for (i = 0; nvram[i] != NULL; i++) { + if (VIR_ALLOC(cfg->firmwares[i]) < 0) + goto cleanup; + if (virFirmwareParse(nvram[i], cfg->firmwares[i]) < 0) + goto cleanup; + } + } + + ret = 0; + cleanup: + virStringListFree(nvram); + return ret; +} + + static int virQEMUDriverConfigLoadGlusterDebugEntry(virQEMUDriverConfigPtr cfg, virConfPtr conf) @@ -591,7 +623,6 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg, size_t i; char *stdioHandler = NULL; char **hugetlbfs = NULL; - char **nvram = NULL; char *corestr = NULL; bool tmp; @@ -907,22 +938,8 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg, if (virConfGetValueBool(conf, "log_timestamp", &cfg->logTimestamp) < 0) goto cleanup; - if (virConfGetValueStringList(conf, "nvram", false, &nvram) < 0) + if (virQEMUDriverConfigLoadNVRAMEntry(cfg, conf) < 0) goto cleanup; - if (nvram) { - virFirmwareFreeList(cfg->firmwares, cfg->nfirmwares); - - cfg->nfirmwares = virStringListLength((const char *const *)nvram); - if (nvram[0] && VIR_ALLOC_N(cfg->firmwares, cfg->nfirmwares) < 0) - goto cleanup; - - for (i = 0; nvram[i] != NULL; i++) { - if (VIR_ALLOC(cfg->firmwares[i]) < 0) - goto cleanup; - if (virFirmwareParse(nvram[i], cfg->firmwares[i]) < 0) - goto cleanup; - } - } if (virQEMUDriverConfigLoadGlusterDebugEntry(cfg, conf) < 0) goto cleanup; @@ -940,7 +957,6 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg, cleanup: virStringListFree(hugetlbfs); - virStringListFree(nvram); VIR_FREE(corestr); virConfFree(conf); return ret;