1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-20 05:23:04 +01:00

Fix CircularBuffer push_back method.

This commit is contained in:
Matt
2019-02-04 14:50:14 +01:00
parent 49a6ae7894
commit 0d1c8b8d31

View File

@@ -78,16 +78,30 @@ public:
void push_back(const value_type& val)
{
if (_size == capacity())
if (_size == 0)
{
_head = (_head + 1) % capacity();
_elements[_head] = val;
_tail = _head;
_size++;
}
else if (_size != capacity())
{
_tail++;
if (_tail == capacity())
_tail = 0;
_size++;
_elements[_tail] = val;
}
else
{
_size++;
_head++;
if (_head == capacity())
_head = 0;
_tail++;
if (_tail == capacity())
_tail = 0;
_elements[_tail] = val;
}
_elements[_tail] = val;
_tail = (_tail + 1) % capacity();
}
private: