On Fri, May 26, 2017 at 08:22:26 -0400, John Ferlan wrote: > > > On 05/26/2017 03:14 AM, Peter Krempa wrote: > > On Thu, May 25, 2017 at 15:57:01 -0400, John Ferlan wrote: > >> In order to ensure that whenever something is added to virNodeDevCapType > >> that both functions are considered for processing of a new capability, > >> change the if-then-else construct into a switch statement. > >> > >> Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx> > >> --- > >> src/conf/virnodedeviceobj.c | 80 +++++++++++++++++++++++++++++++++------------ > >> 1 file changed, 60 insertions(+), 20 deletions(-) > >> > >> diff --git a/src/conf/virnodedeviceobj.c b/src/conf/virnodedeviceobj.c > >> index bbb6eeb..913cdda 100644 > >> --- a/src/conf/virnodedeviceobj.c > >> +++ b/src/conf/virnodedeviceobj.c > >> @@ -48,19 +48,41 @@ virNodeDeviceObjHasCap(const virNodeDeviceObj *dev, > >> while (caps) { > >> if (STREQ(cap, virNodeDevCapTypeToString(caps->data.type))) { > >> return 1; > >> - } else if (caps->data.type == VIR_NODE_DEV_CAP_SCSI_HOST) { > >> - if ((STREQ(cap, fc_host_cap) && > >> - (caps->data.scsi_host.flags & > >> - VIR_NODE_DEV_CAP_FLAG_HBA_FC_HOST)) || > >> - (STREQ(cap, vports_cap) && > >> - (caps->data.scsi_host.flags & > >> - VIR_NODE_DEV_CAP_FLAG_HBA_VPORT_OPS))) > >> - return 1; > >> - } else if (caps->data.type == VIR_NODE_DEV_CAP_PCI_DEV) { > >> - if ((STREQ(cap, mdev_types)) && > >> - (caps->data.pci_dev.flags & > >> - VIR_NODE_DEV_CAP_FLAG_PCI_MDEV)) > >> - return 1; > >> + } else { > >> + switch (caps->data.type) { > >> + case VIR_NODE_DEV_CAP_PCI_DEV: > >> + if ((STREQ(cap, mdev_types)) && > >> + (caps->data.pci_dev.flags & > >> + VIR_NODE_DEV_CAP_FLAG_PCI_MDEV)) > > > > Since you are touching this, put this on a single line. It looks very > > ugly this way. It also fits into the 80 col boundary, so I don't see a > > reaosn for this. > > For MDEV - it can fit, for SCSI_HOST, not as clean, but it could be: > > if ((STREQ(cap, fc_host_cap) && (caps->data.scsi_host.flags & > VIR_NODE_DEV_CAP_FLAG_HBA_FC_HOST)) || > (STREQ(cap, vports_cap) && (caps->data.scsi_host.flags & > VIR_NODE_DEV_CAP_FLAG_HBA_VPORT_OPS))) That is WAY worse. The binary mask should be on a single line since it's semantically connected. Also the 80 col rule is not really strict. Especially if it hinders readability of the code. The above suggestion is a very good example where you'd completely destroy readability. > return 1; > > Although I'm not sure I like the way that looks. [...] > > But does that "violate" the too many changes at once "guideline"? If you feel so, leave it as-is.
Attachment:
signature.asc
Description: PGP signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list