Skip to content

Commit 19ee2c7

Browse files
committed
Merge pull request #416 from bright-pan/master
[Driver/ringbuffer]: Fix put_force bug
2 parents d5c6519 + 2d67fe6 commit 19ee2c7

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

components/drivers/src/ringbuffer.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,13 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
100100
const rt_uint8_t *ptr,
101101
rt_uint16_t length)
102102
{
103-
enum rt_ringbuffer_state old_state;
103+
rt_uint16_t space_length;
104104

105105
RT_ASSERT(rb != RT_NULL);
106106

107-
old_state = rt_ringbuffer_status(rb);
107+
space_length = rt_ringbuffer_space_len(rb);
108108

109-
if (length > rb->buffer_size)
109+
if (length > space_length)
110110
length = rb->buffer_size;
111111

112112
if (rb->buffer_size - rb->write_index > length)
@@ -117,7 +117,7 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
117117
* length of data in current mirror */
118118
rb->write_index += length;
119119

120-
if (old_state == RT_RINGBUFFER_FULL)
120+
if (length > space_length)
121121
rb->read_index = rb->write_index;
122122

123123
return length;
@@ -134,7 +134,7 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
134134
rb->write_mirror = ~rb->write_mirror;
135135
rb->write_index = length - (rb->buffer_size - rb->write_index);
136136

137-
if (old_state == RT_RINGBUFFER_FULL)
137+
if (length > space_length)
138138
{
139139
rb->read_mirror = ~rb->read_mirror;
140140
rb->read_index = rb->write_index;

0 commit comments

Comments
 (0)