@@ -100,13 +100,13 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
100
100
const rt_uint8_t * ptr ,
101
101
rt_uint16_t length )
102
102
{
103
- enum rt_ringbuffer_state old_state ;
103
+ rt_uint16_t space_length ;
104
104
105
105
RT_ASSERT (rb != RT_NULL );
106
106
107
- old_state = rt_ringbuffer_status (rb );
107
+ space_length = rt_ringbuffer_space_len (rb );
108
108
109
- if (length > rb -> buffer_size )
109
+ if (length > space_length )
110
110
length = rb -> buffer_size ;
111
111
112
112
if (rb -> buffer_size - rb -> write_index > length )
@@ -117,7 +117,7 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
117
117
* length of data in current mirror */
118
118
rb -> write_index += length ;
119
119
120
- if (old_state == RT_RINGBUFFER_FULL )
120
+ if (length > space_length )
121
121
rb -> read_index = rb -> write_index ;
122
122
123
123
return length ;
@@ -134,7 +134,7 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
134
134
rb -> write_mirror = ~rb -> write_mirror ;
135
135
rb -> write_index = length - (rb -> buffer_size - rb -> write_index );
136
136
137
- if (old_state == RT_RINGBUFFER_FULL )
137
+ if (length > space_length )
138
138
{
139
139
rb -> read_mirror = ~rb -> read_mirror ;
140
140
rb -> read_index = rb -> write_index ;
0 commit comments