summaryrefslogtreecommitdiff
path: root/components/drivers
diff options
context:
space:
mode:
authorbernard <[email protected]>2015-01-31 14:48:31 +0800
committerbernard <[email protected]>2015-01-31 14:48:31 +0800
commit72298bac328461d9b5ab4b6a94bcf801aba2fb8f (patch)
treee2a3cf9fbcfe1b8046d33593bdb4f21fd0963158 /components/drivers
parent1f2a6e3a896a648cce963b8f0d0a82b1afbcefaa (diff)
parent7e11b8eb626bf00ddc4a6d29ac54d179455d026c (diff)
Merge remote-tracking branch 'bernard/master'
Diffstat (limited to 'components/drivers')
-rw-r--r--components/drivers/src/ringbuffer.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/components/drivers/src/ringbuffer.c b/components/drivers/src/ringbuffer.c
index 6212b10258..8c2705ceb1 100644
--- a/components/drivers/src/ringbuffer.c
+++ b/components/drivers/src/ringbuffer.c
@@ -100,13 +100,13 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
const rt_uint8_t *ptr,
rt_uint16_t length)
{
- enum rt_ringbuffer_state old_state;
+ rt_uint16_t space_length;
RT_ASSERT(rb != RT_NULL);
- old_state = rt_ringbuffer_status(rb);
+ space_length = rt_ringbuffer_space_len(rb);
- if (length > rb->buffer_size)
+ if (length > space_length)
length = rb->buffer_size;
if (rb->buffer_size - rb->write_index > length)
@@ -117,7 +117,7 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
* length of data in current mirror */
rb->write_index += length;
- if (old_state == RT_RINGBUFFER_FULL)
+ if (length > space_length)
rb->read_index = rb->write_index;
return length;
@@ -134,7 +134,7 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
rb->write_mirror = ~rb->write_mirror;
rb->write_index = length - (rb->buffer_size - rb->write_index);
- if (old_state == RT_RINGBUFFER_FULL)
+ if (length > space_length)
{
rb->read_mirror = ~rb->read_mirror;
rb->read_index = rb->write_index;