diff options
Diffstat (limited to 'libraries/SoftwareSerial')
| -rw-r--r-- | libraries/SoftwareSerial/SoftwareSerial.cpp | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/libraries/SoftwareSerial/SoftwareSerial.cpp b/libraries/SoftwareSerial/SoftwareSerial.cpp index cafd0c4..42f796b 100644 --- a/libraries/SoftwareSerial/SoftwareSerial.cpp +++ b/libraries/SoftwareSerial/SoftwareSerial.cpp @@ -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 
      {
 | 
