diff options
| -rw-r--r-- | src/Interleaver.cpp | 20 | ||||
| -rw-r--r-- | src/Interleaver.h | 5 | 
2 files changed, 9 insertions, 16 deletions
diff --git a/src/Interleaver.cpp b/src/Interleaver.cpp index 7d69810..cf0d235 100644 --- a/src/Interleaver.cpp +++ b/src/Interleaver.cpp @@ -28,23 +28,17 @@  #endif // _WIN32 -Interleaver::Interleaver(unsigned short I, unsigned short M, bool reverse) +Interleaver::Interleaver(unsigned short I, unsigned short M, bool reverse) : +    I(I), +    M(M), +    N(I * M), +    memSize((this->N * I) - 1)  { -    this->I = I; -    this->M = M; -    this->N = I * M; -    this->memSize = (this->N * I) - 1; -    this->mem = new char[memSize]; +    mem.resize(memSize);      setReverse(reverse);  } -Interleaver::~Interleaver() -{ -    delete []mem; -} - -  void Interleaver::setReverse(bool state)  {      reverse = state; @@ -56,7 +50,7 @@ void Interleaver::reset()  {      j = 0;      index = 0; -    bzero(mem, memSize); +    memset(mem.data(), 0, memSize * sizeof(mem[0]));  } diff --git a/src/Interleaver.h b/src/Interleaver.h index 3afe8f0..2a32c47 100644 --- a/src/Interleaver.h +++ b/src/Interleaver.h @@ -26,13 +26,12 @@  #   include "config.h"  #endif +#include <vector>  class Interleaver  {  public:      Interleaver(unsigned short I, unsigned short M, bool reverse = false); -    Interleaver(Interleaver& clone); -    virtual ~Interleaver();      void setReverse(bool state);      void encode(void* data, unsigned long size); @@ -48,7 +47,7 @@ private:      unsigned long j;      unsigned long index;      unsigned long memSize; -    char* mem; +    std::vector<char> mem;      bool reverse;  };  | 
