[alsa-devel] [PATCH v2 03/13] topology: Add topology core parser.

Takashi Iwai tiwai at suse.de
Wed Jul 1 18:00:16 CEST 2015


At Wed,  1 Jul 2015 14:44:25 +0100,
Liam Girdwood wrote:
> 
> +int tplg_parse_compound(snd_tplg_t *tplg, snd_config_t *cfg,
> +	int (*fcn)(snd_tplg_t *, snd_config_t *, void *),
> +	void *private)
> +{
> +	const char *id;
> +	snd_config_iterator_t i, next;
> +	snd_config_t *n;
> +	int err = -EINVAL;
> +
> +	if (snd_config_get_id(cfg, &id) < 0)
> +		return -EINVAL;
> +
> +	if (snd_config_get_type(cfg) != SND_CONFIG_TYPE_COMPOUND) {
> +		fprintf(stderr, "error: compound type expected for %s", id);

It's not good to print an error unconditionally from a system
library.  Better to use SNDERR() macro.

> +int snd_tplg_build(snd_tplg_t *tplg, const char *infile, const char *outfile)
> +{
> +	snd_config_t *cfg = NULL;
> +	int err = 0;
> +
> +	/* delete any old output files */
> +	unlink(outfile);
> +
> +	tplg->out_fd =
> +		open(outfile, O_RDWR | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO);
> +	if (tplg->out_fd < 0) {
> +		fprintf(stderr, "error: failed to open %s err %d\n",
> +			outfile, -errno);
> +		return -errno;
> +	}
> +
> +	err = tplg_load_config(infile, &cfg);
> +	if (err < 0) {
> +		fprintf(stderr, "error: failed to load topology file %s\n",
> +			infile);
> +		return err;

The outfile is left opened.


Takashi


More information about the Alsa-devel mailing list