From 8e0dab3a8e2e4b0c580739587fa4a474c7a4afc8 Mon Sep 17 00:00:00 2001 From: Laine Stump Date: Tue, 24 Sep 2013 09:38:32 -0400 Subject: [PATCH] qemu: replace multiple strcmps with a switch on an enum I'm not sure why this code was written to compare the strings that it had just retrieved from an enum->string conversion, rather than just look at the original enum values, but this yields the same results, and is much more efficient (especially as you add more devices). This is a prerequisite for patches to resolve: https://bugzilla.redhat.com/show_bug.cgi?id=1003983 --- src/qemu/qemu_command.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 280d8d28e1..3156cff97f 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5269,13 +5269,18 @@ qemuBuildSoundDevStr(virDomainDefPtr def, goto error; } - /* Hack for weirdly unusual devices name in QEMU */ - if (STREQ(model, "es1370")) + /* Hack for devices with different names in QEMU and libvirt */ + switch (sound->model) { + case VIR_DOMAIN_SOUND_MODEL_ES1370: model = "ES1370"; - else if (STREQ(model, "ac97")) + break; + case VIR_DOMAIN_SOUND_MODEL_AC97: model = "AC97"; - else if (STREQ(model, "ich6")) + break; + case VIR_DOMAIN_SOUND_MODEL_ICH6: model = "intel-hda"; + break; + } virBufferAsprintf(&buf, "%s,id=%s", model, sound->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &sound->info, qemuCaps) < 0) -- GitLab