AP_HAL: Simplify ByteBuffer::readptr logic

This commit is contained in:
Murilo Belluzzo 2016-06-23 18:40:44 -03:00 committed by Lucas De Marchi
parent fbefe32017
commit e9e31172c0
2 changed files with 6 additions and 10 deletions

View File

@ -176,18 +176,14 @@ uint32_t ByteBuffer::read(uint8_t *data, uint32_t len)
}
/*
return a pointer to a contiguous read buffer
* Returns the pointer and size to a contiguous read in the buffer
*/
const uint8_t *ByteBuffer::readptr(uint32_t &available_bytes)
{
available_bytes = available();
if (available_bytes == 0) {
return nullptr;
}
if (head+available_bytes > size) {
available_bytes = size - head;
}
return &buf[head];
uint32_t _tail = tail;
available_bytes = (head > _tail) ? size - head : _tail - head;
return available_bytes ? &buf[head] : nullptr;
}
int16_t ByteBuffer::peek(uint32_t ofs) const

View File

@ -61,7 +61,7 @@ public:
// advance the read pointer (discarding bytes)
bool advance(uint32_t n);
// return a pointer to the next available data
// Returns the pointer and size to a contiguous read of the next available data
const uint8_t *readptr(uint32_t &available_bytes);
// peek one byte without advancing read pointer. Return byte