[libvirt] [PATCH 07/16] conf: whitespace cleanups and refactors with no semantic impact

Laine Stump laine at laine.org
Thu Feb 21 20:42:22 UTC 2013


On 02/20/2013 12:06 PM, Peter Krempa wrote:
> This patch changes many unrelated places to simplify the code or update
> code style. This patch should not have any semantic impact on the code.
> ---
>  src/conf/domain_conf.c | 137 +++++++++++++++++++++----------------------------
>  src/conf/domain_conf.h |   4 +-
>  2 files changed, 60 insertions(+), 81 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 18df1bd..b4340f3 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -8150,9 +8150,9 @@ virDomainDeviceDefParse(virCapsPtr caps,
>      xmlXPathContextPtr ctxt = NULL;
>      virDomainDeviceDefPtr dev = NULL;
>
> -    if (!(xml = virXMLParseStringCtxt(xmlStr, _("(device_definition)"), &ctxt))) {
> +    if (!(xml = virXMLParseStringCtxt(xmlStr, _("(device_definition)"), &ctxt)))
>          goto error;
> -    }
> +
>      node = ctxt->node;
>
>      if (VIR_ALLOC(dev) < 0) {
> @@ -8219,20 +8219,18 @@ virDomainDeviceDefParse(virCapsPtr caps,
>          if (!(dev->data.redirdev = virDomainRedirdevDefParseXML(node, NULL, flags)))
>              goto error;
>      } else {
> -        virReportError(VIR_ERR_XML_ERROR,
> -                       "%s", _("unknown device type"));
> +        virReportError(VIR_ERR_XML_ERROR, "%s", _("unknown device type"));
>          goto error;
>      }
>
> +cleanup:
>      xmlFreeDoc(xml);
>      xmlXPathFreeContext(ctxt);
>      return dev;
>
> -  error:
> -    xmlFreeDoc(xml);
> -    xmlXPathFreeContext(ctxt);
> +error:
>      VIR_FREE(dev);
> -    return NULL;
> +    goto cleanup;
>  }
>
>
> @@ -9296,8 +9294,7 @@ virDomainDefParseXML(virCapsPtr caps,
>          def->mem.cur_balloon = def->mem.max_balloon;
>      }
>
> -    node = virXPathNode("./memoryBacking/hugepages", ctxt);
> -    if (node)
> +    if ((node = virXPathNode("./memoryBacking/hugepages", ctxt)))
>          def->mem.hugepage_backed = true;
>
>      /* Extract blkio cgroup tunables */
> @@ -9652,36 +9649,34 @@ virDomainDefParseXML(virCapsPtr caps,
>      }
>      VIR_FREE(nodes);
>
> -    n = virXPathNodeSet("./features/*", ctxt, &nodes);
> -    if (n < 0)
> +    if ((n = virXPathNodeSet("./features/*", ctxt, &nodes)) < 0)
>          goto error;
> -    if (n) {
> -        for (i = 0 ; i < n ; i++) {
> -            int val = virDomainFeatureTypeFromString((const char *)nodes[i]->name);
> -            if (val < 0) {
> -                virReportError(VIR_ERR_INTERNAL_ERROR,
> -                               _("unexpected feature %s"),
> -                               nodes[i]->name);
> -                goto error;
> -            }
> -            def->features |= (1 << val);
> -            if (val == VIR_DOMAIN_FEATURE_APIC) {
> -                tmp = virXPathString("string(./features/apic/@eoi)", ctxt);
> -                if (tmp) {
> -                    int eoi;
> -                    if ((eoi = virDomainFeatureStateTypeFromString(tmp)) <= 0) {
> -                        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> -                                       _("unknown value for attribute eoi: %s"),
> -                                       tmp);
> -                        goto error;
> -                    }
> -                    def->apic_eoi = eoi;
> -                    VIR_FREE(tmp);
> +
> +    for (i = 0 ; i < n ; i++) {
> +        int val = virDomainFeatureTypeFromString((const char *)nodes[i]->name);
> +        if (val < 0) {
> +            virReportError(VIR_ERR_INTERNAL_ERROR,
> +                           _("unexpected feature %s"),
> +                           nodes[i]->name);
> +            goto error;
> +        }
> +        def->features |= (1 << val);
> +        if (val == VIR_DOMAIN_FEATURE_APIC) {
> +            tmp = virXPathString("string(./features/apic/@eoi)", ctxt);
> +            if (tmp) {
> +                int eoi;
> +                if ((eoi = virDomainFeatureStateTypeFromString(tmp)) <= 0) {
> +                    virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +                                   _("unknown value for attribute eoi: %s"),
> +                                   tmp);
> +                    goto error;
>                  }
> +                def->apic_eoi = eoi;
> +                VIR_FREE(tmp);
>              }
>          }
> -        VIR_FREE(nodes);
>      }
> +    VIR_FREE(nodes);
>
>      if (def->features & (1 << VIR_DOMAIN_FEATURE_HYPERV)) {
>          int feature;
> @@ -9769,17 +9764,14 @@ virDomainDefParseXML(virCapsPtr caps,
>                                   &def->pm.s4) < 0)
>          goto error;
>
> -    tmp = virXPathString("string(./clock/@offset)", ctxt);
> -    if (tmp) {
> -        if ((def->clock.offset = virDomainClockOffsetTypeFromString(tmp)) < 0) {
> -            virReportError(VIR_ERR_INTERNAL_ERROR,
> -                           _("unknown clock offset '%s'"), tmp);
> -            goto error;
> -        }
> -        VIR_FREE(tmp);
> -    } else {
> -        def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_UTC;
> +    if ((tmp = virXPathString("string(./clock/@offset)", ctxt)) &&
> +        (def->clock.offset = virDomainClockOffsetTypeFromString(tmp)) < 0) {
> +        virReportError(VIR_ERR_INTERNAL_ERROR,
> +                       _("unknown clock offset '%s'"), tmp);
> +        goto error;
>      }
> +    VIR_FREE(tmp);
> +
>      switch (def->clock.offset) {
>      case VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME:
>      case VIR_DOMAIN_CLOCK_OFFSET_UTC:
> @@ -9838,11 +9830,12 @@ virDomainDefParseXML(virCapsPtr caps,
>          break;
>      }
>
> -    if ((n = virXPathNodeSet("./clock/timer", ctxt, &nodes)) < 0) {
> +    if ((n = virXPathNodeSet("./clock/timer", ctxt, &nodes)) < 0)
>          goto error;
> -    }
> +
>      if (n && VIR_ALLOC_N(def->clock.timers, n) < 0)
>          goto no_memory;
> +
>      for (i = 0 ; i < n ; i++) {
>          virDomainTimerDefPtr timer = virDomainTimerDefParseXML(nodes[i],
>                                                                 ctxt);
> @@ -10690,8 +10683,8 @@ virDomainDefParseXML(virCapsPtr caps,
>              }
>          }
>      }
> -    tmp = virXPathString("string(./os/smbios/@mode)", ctxt);
> -    if (tmp) {
> +
> +    if ((tmp = virXPathString("string(./os/smbios/@mode)", ctxt))) {
>          int mode;
>
>          if ((mode = virDomainSmbiosModeTypeFromString(tmp)) < 0) {
> @@ -10701,27 +10694,22 @@ virDomainDefParseXML(virCapsPtr caps,
>          }
>          def->os.smbios_mode = mode;
>          VIR_FREE(tmp);
> -    } else {
> -        def->os.smbios_mode = VIR_DOMAIN_SMBIOS_NONE; /* not present */
>      }
>
>      /* Extract custom metadata */
> -    if ((node = virXPathNode("./metadata[1]", ctxt)) != NULL) {
> +    if ((node = virXPathNode("./metadata[1]", ctxt)) != NULL)
>          def->metadata = xmlCopyNode(node, 1);
> -    }
>
>      /* we have to make a copy of all of the callback pointers here since
>       * we won't have the virCaps structure available during free
>       */
>      def->ns = caps->ns;
>
> -    if (def->ns.parse) {
> -        if ((def->ns.parse)(xml, root, ctxt, &def->namespaceData) < 0)
> -            goto error;
> -    }
> +    if (def->ns.parse &&
> +        (def->ns.parse)(xml, root, ctxt, &def->namespaceData) < 0)
> +        goto error;


I prefer adding braces when the conditional of a compound statement has
multiple lines (yeah, I know this isn't in the official guidelines).


>
> -    /* Auto-add any implied controllers which aren't present
> -     */
> +    /* Auto-add any implied controllers which aren't present */
>      if (virDomainDefAddImplicitControllers(def) < 0)
>          goto error;
>
> @@ -10731,9 +10719,7 @@ virDomainDefParseXML(virCapsPtr caps,
>
>  no_memory:
>      virReportOOMError();
> -    /* fallthrough */
> -
> - error:
> +error:
>      VIR_FREE(tmp);
>      VIR_FREE(nodes);
>      virBitmapFree(bootMap);
> @@ -10898,8 +10884,7 @@ virDomainDefParseNode(virCapsPtr caps,
>          goto cleanup;
>      }
>
> -    ctxt = xmlXPathNewContext(xml);
> -    if (ctxt == NULL) {
> +    if (!(ctxt = xmlXPathNewContext(xml))) {
>          virReportOOMError();
>          goto cleanup;
>      }
> @@ -15028,8 +15013,7 @@ virDomainSaveConfig(const char *configDir,
>      int ret = -1;
>      char *xml;
>
> -    if (!(xml = virDomainDefFormat(def,
> -                                   VIR_DOMAIN_XML_WRITE_FLAGS)))
> +    if (!(xml = virDomainDefFormat(def, VIR_DOMAIN_XML_WRITE_FLAGS)))
>          goto cleanup;
>
>      if (virDomainSaveXML(configDir, def, xml))
> @@ -15238,7 +15222,8 @@ virDomainDeleteConfig(const char *configDir,
>
>      if ((configFile = virDomainConfigFile(configDir, dom->def->name)) == NULL)
>          goto cleanup;
> -    if ((autostartLink = virDomainConfigFile(autostartDir, dom->def->name)) == NULL)
> +    if ((autostartLink = virDomainConfigFile(autostartDir,
> +                                             dom->def->name)) == NULL)
>          goto cleanup;

Same comment about multi-line conditions vs. braces.

>
>      /* Not fatal if this doesn't work */
> @@ -15264,12 +15249,10 @@ char
>  *virDomainConfigFile(const char *dir,
>                       const char *name)
>  {
> -    char *ret = NULL;
> +    char *ret;
>
> -    if (virAsprintf(&ret, "%s/%s.xml", dir, name) < 0) {
> +    if (virAsprintf(&ret, "%s/%s.xml", dir, name) < 0)
>          virReportOOMError();
> -        return NULL;
> -    }
>
>      return ret;
>  }
> @@ -15441,16 +15424,13 @@ virDomainObjListGetInactiveNames(virDomainObjListPtr doms,
>      virHashForEach(doms->objs, virDomainObjListCopyInactiveNames, &data);
>      virObjectUnlock(doms);
>      if (data.oom) {
> +        for (i = 0 ; i < data.numnames ; i++)
> +            VIR_FREE(data.names[i]);
>          virReportOOMError();
> -        goto cleanup;
> +        return -1;
>      }
>
>      return data.numnames;
> -
> -cleanup:
> -    for (i = 0 ; i < data.numnames ; i++)
> -        VIR_FREE(data.names[i]);
> -    return -1;
>  }
>
>
> @@ -15620,8 +15600,7 @@ virDomainDefCopy(virCapsPtr caps, virDomainDefPtr src, bool migratable)
>          write_flags |= VIR_DOMAIN_XML_INACTIVE | VIR_DOMAIN_XML_MIGRATABLE;
>
>      /* Easiest to clone via a round-trip through XML.  */
> -    xml = virDomainDefFormat(src, write_flags);
> -    if (!xml)
> +    if (!(xml = virDomainDefFormat(src, write_flags)))
>          return NULL;
>
>      ret = virDomainDefParseString(caps, xml, -1, read_flags);
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index 4ffa4aa..cce53ca 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -783,7 +783,7 @@ struct _virDomainFSDef {
>  };
>
>
> -/* 5 different types of networking config */
> +/* network config types */
>  enum virDomainNetType {
>      VIR_DOMAIN_NET_TYPE_USER,
>      VIR_DOMAIN_NET_TYPE_ETHERNET,
> @@ -1420,7 +1420,7 @@ struct _virDomainMemballoonDef {
>
>
>  enum virDomainSmbiosMode {
> -    VIR_DOMAIN_SMBIOS_NONE,
> +    VIR_DOMAIN_SMBIOS_NONE = 0,
>      VIR_DOMAIN_SMBIOS_EMULATE,
>      VIR_DOMAIN_SMBIOS_HOST,
>      VIR_DOMAIN_SMBIOS_SYSINFO,

ACK (you can add the braces where I indicated or not - since it's not in
the code style guidelines, it's a matter of taste :-)




More information about the libvir-list mailing list