提交 8e0dab3a 编写于 作者: L Laine Stump

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
上级 07af5192
...@@ -5269,13 +5269,18 @@ qemuBuildSoundDevStr(virDomainDefPtr def, ...@@ -5269,13 +5269,18 @@ qemuBuildSoundDevStr(virDomainDefPtr def,
goto error; goto error;
} }
/* Hack for weirdly unusual devices name in QEMU */ /* Hack for devices with different names in QEMU and libvirt */
if (STREQ(model, "es1370")) switch (sound->model) {
case VIR_DOMAIN_SOUND_MODEL_ES1370:
model = "ES1370"; model = "ES1370";
else if (STREQ(model, "ac97")) break;
case VIR_DOMAIN_SOUND_MODEL_AC97:
model = "AC97"; model = "AC97";
else if (STREQ(model, "ich6")) break;
case VIR_DOMAIN_SOUND_MODEL_ICH6:
model = "intel-hda"; model = "intel-hda";
break;
}
virBufferAsprintf(&buf, "%s,id=%s", model, sound->info.alias); virBufferAsprintf(&buf, "%s,id=%s", model, sound->info.alias);
if (qemuBuildDeviceAddressStr(&buf, def, &sound->info, qemuCaps) < 0) if (qemuBuildDeviceAddressStr(&buf, def, &sound->info, qemuCaps) < 0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册