Bug fixes:

- Fixed bugs on CRollingBuffer and CShiftBuffer
  - Remove "virtual" from methods declarations
  - Correct validation checks on methods
  - Use memmove to shift data in ShiftBuffer
  - Initialise buffer in RollingBuffer
  - FindStr() -> Return start position of match
  - Fix incorrect params passed to Peek()/PeekCopy() in Pop()/PopCopy()
  - Fix endless lopp in RollingBuffer::Push()
This commit is contained in:
Charl Wentzel
2017-03-22 07:52:58 +02:00
parent b5763d7f50
commit 5b4e6822c7
3 changed files with 39 additions and 36 deletions

View File

@@ -53,7 +53,7 @@ private:
public:
// Life Cycle
CRollingBuffer( int BufferSize );
virtual ~CRollingBuffer();
~CRollingBuffer();
// Direct Operations
int Reset(); // Clear buffer and reset all pointers to start of buffer
@@ -67,15 +67,15 @@ public:
bool FindStr( const char * SearchStr, int SearchLen, int &FoundPos, int StartPos = 0 ); // Search buffer directly
// Change data on buffer
virtual int Push( bool Overwrite, const char * Data, int Len = -1 );
virtual int Clear( int ClearLen = -1 );
int Push( bool Overwrite, const char * Data, int Len = -1 );
int Clear( int ClearLen = -1 );
virtual int Pop( char ** Data, int MaxLen = -1 );
virtual int PopCopy( char ** Data, int MaxLen = -1 );
int Pop( char ** Data, int MaxLen = -1 );
int PopCopy( char ** Data, int MaxLen = -1 );
// File operations
virtual int ReadFromFD( int Handle, int MaxRead = -1, bool Overwrite = false );
virtual int WriteToFD( int Handle, int MaxWrite = -1 );
int ReadFromFD( int Handle, int MaxRead = -1, bool Overwrite = false );
int WriteToFD( int Handle, int MaxWrite = -1 );
// Miscellaneous
int Size() { return BufSize; };
@@ -97,7 +97,7 @@ private:
public:
// Life Cycle
CShiftBuffer( int BufferSize );
virtual ~CShiftBuffer();
~CShiftBuffer();
// Direct Operations
int Reset(); // Clear buffer and reset all pointers to start of buffer
@@ -110,16 +110,16 @@ public:
bool FindStr( const char * SearchStr, int SearchLen, int &FoundPos, int StartPos = 0 ); // Search buffer directly
// Chagne data on buffer
virtual int Push( bool Overwrite, const char * Data, int Len = -1 );
virtual int Clear( int ClearLen = -1 );
// Change data on buffer
int Push( bool Overwrite, const char * Data, int Len = -1 );
int Clear( int ClearLen = -1 );
virtual int Pop( char ** Data, int MaxLen = -1 );
virtual int PopCopy( char ** Data, int MaxLen = -1 );
int Pop( char ** Data, int MaxLen = -1 );
int PopCopy( char ** Data, int MaxLen = -1 );
// File operations
virtual int ReadFromFD( int Handle, int MaxRead = -1 );
virtual int WriteToFD( int Handle, int MaxWrite = -1 );
int ReadFromFD( int Handle, int MaxRead = -1 );
int WriteToFD( int Handle, int MaxWrite = -1 );
// Miscellaneous
int Size() { return BufSize; };