Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F102965815
D46100.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D46100.diff
View Options
diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c
--- a/sys/dev/sound/pcm/channel.c
+++ b/sys/dev/sound/pcm/channel.c
@@ -1324,8 +1324,7 @@
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_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);
diff --git a/sys/dev/sound/pcm/feeder.h b/sys/dev/sound/pcm/feeder.h
--- a/sys/dev/sound/pcm/feeder.h
+++ b/sys/dev/sound/pcm/feeder.h
@@ -60,7 +60,7 @@
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 *);
diff --git a/sys/dev/sound/pcm/feeder.c b/sys/dev/sound/pcm/feeder.c
--- a/sys/dev/sound/pcm/feeder.c
+++ b/sys/dev/sound/pcm/feeder.c
@@ -248,18 +248,16 @@
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 *
diff --git a/sys/dev/sound/pcm/feeder_chain.c b/sys/dev/sound/pcm/feeder_chain.c
--- a/sys/dev/sound/pcm/feeder_chain.c
+++ b/sys/dev/sound/pcm/feeder_chain.c
@@ -588,8 +588,7 @@
CHN_LOCKASSERT(c);
/* Remove everything first. */
- while (feeder_remove(c) == 0)
- ;
+ feeder_remove(c);
KASSERT(c->feeder == NULL, ("feeder chain not empty"));
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Nov 20, 7:15 AM (5 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14730754
Default Alt Text
D46100.diff (1 KB)
Attached To
Mode
D46100: sound: Simplify feeder_remove()
Attached
Detach File
Event Timeline
Log In to Comment