In SoftwareSerial::recv, only calculate the new tail once

This shortens the generated code a bit more.
This commit is contained in:
Matthijs Kooijman 2014-04-23 17:45:10 +02:00
parent 9d8f350ffe
commit ddbe3174f0
1 changed files with 3 additions and 2 deletions

View File

@ -259,11 +259,12 @@ void SoftwareSerial::recv()
d = ~d;
// if buffer full, set the overflow flag and return
if ((_receive_buffer_tail + 1) % _SS_MAX_RX_BUFF != _receive_buffer_head)
uint8_t next = (_receive_buffer_tail + 1) % _SS_MAX_RX_BUFF;
if (next != _receive_buffer_head)
{
// save new data in buffer: tail points to where byte goes
_receive_buffer[_receive_buffer_tail] = d; // save new byte
_receive_buffer_tail = (_receive_buffer_tail + 1) % _SS_MAX_RX_BUFF;
_receive_buffer_tail = next;
}
else
{