fix m_zero_offset init and update

This commit is contained in:
Lendemor 2016-07-27 19:52:42 +02:00
parent 7eb5994405
commit 2705651565
2 changed files with 5 additions and 3 deletions

View File

@ -72,8 +72,10 @@ void SparrowShell::update()
}
void SparrowShell::ShellBuffer::push(std::string s){
if (m_buffer.size() >= m_size)
if (m_buffer.size() >= m_size){
m_buffer[m_zero_offset++] = s;
m_zero_offset %= m_size;
}
else
m_buffer.push_back(s);
}

View File

@ -36,11 +36,11 @@ private:
class ShellBuffer{
private:
std::vector<std::string> m_buffer;
int m_zero_offset;
int m_zero_offset = 0;
unsigned int m_size;
public:
ShellBuffer(int size):m_size(size){}
std::string& operator[](int i){return m_buffer[m_zero_offset+i%m_size];}
std::string& operator[](int i){return m_buffer[(m_zero_offset+i)%m_size];}
void push(std::string);
unsigned int size(){return m_size;}
};