mirror of
https://github.com/opnsense/src.git
synced 2026-06-03 13:58:30 -04:00
sound: Simplify feeder_remove()
Sponsored by: The FreeBSD Foundation MFC after: 2 days Reviewed by: dev_submerge.ch, markj, emaste Differential Revision: https://reviews.freebsd.org/D46100 (cherry picked from commit 00172d20070a544e0514cce9f94475c5525fd15e)
This commit is contained in:
parent
9b5e6dfe18
commit
a9e27006db
4 changed files with 10 additions and 15 deletions
|
|
@ -1324,8 +1324,7 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls,
|
|||
return (c);
|
||||
|
||||
fail:
|
||||
while (feeder_remove(c) == 0)
|
||||
;
|
||||
feeder_remove(c);
|
||||
if (c->devinfo && CHANNEL_FREE(c->methods, c->devinfo))
|
||||
sndbuf_free(b);
|
||||
if (bs)
|
||||
|
|
@ -1356,8 +1355,7 @@ chn_kill(struct pcm_channel *c)
|
|||
chn_trigger(c, PCMTRIG_ABORT);
|
||||
CHN_UNLOCK(c);
|
||||
}
|
||||
while (feeder_remove(c) == 0)
|
||||
;
|
||||
feeder_remove(c);
|
||||
if (CHANNEL_FREE(c->methods, c->devinfo))
|
||||
sndbuf_free(b);
|
||||
sndbuf_destroy(bs);
|
||||
|
|
|
|||
|
|
@ -248,18 +248,16 @@ feeder_add(struct pcm_channel *c, struct feeder_class *fc, struct pcm_feederdesc
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
void
|
||||
feeder_remove(struct pcm_channel *c)
|
||||
{
|
||||
struct pcm_feeder *f;
|
||||
|
||||
if (c->feeder == NULL)
|
||||
return -1;
|
||||
f = c->feeder;
|
||||
c->feeder = c->feeder->source;
|
||||
feeder_destroy(f);
|
||||
|
||||
return 0;
|
||||
while (c->feeder != NULL) {
|
||||
f = c->feeder;
|
||||
c->feeder = c->feeder->source;
|
||||
feeder_destroy(f);
|
||||
}
|
||||
}
|
||||
|
||||
struct pcm_feeder *
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ u_int32_t snd_fmtbest(u_int32_t fmt, u_int32_t *fmts);
|
|||
|
||||
int feeder_add(struct pcm_channel *c, struct feeder_class *fc,
|
||||
struct pcm_feederdesc *desc);
|
||||
int feeder_remove(struct pcm_channel *c);
|
||||
void feeder_remove(struct pcm_channel *c);
|
||||
struct pcm_feeder *feeder_find(struct pcm_channel *c, u_int32_t type);
|
||||
void feeder_printchain(struct pcm_feeder *head);
|
||||
int feeder_chain(struct pcm_channel *);
|
||||
|
|
|
|||
|
|
@ -588,8 +588,7 @@ feeder_chain(struct pcm_channel *c)
|
|||
CHN_LOCKASSERT(c);
|
||||
|
||||
/* Remove everything first. */
|
||||
while (feeder_remove(c) == 0)
|
||||
;
|
||||
feeder_remove(c);
|
||||
|
||||
KASSERT(c->feeder == NULL, ("feeder chain not empty"));
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue