void MemoryBlock::setSize()

in src/common/dataBlock.cpp [96:116]


void MemoryBlock::setSize(const int newSize, const bool initialiseToZero) {
  if (size != newSize) {
    if (newSize <= 0) {
      reset();
    } else {
      if (data != NULL) {
        data = static_cast<char*>(data == NULL ? std::malloc(newSize * sizeof(char))
                                               : std::realloc(data, newSize * sizeof(char)));

        if (initialiseToZero && (newSize > size))
          memset(data + size, 0, newSize - size);
      } else {
        std::free(data);
        data = static_cast<char*>(initialiseToZero ? std::calloc(newSize, sizeof(char))
                                                   : std::malloc(newSize * sizeof(char)));
      }

      size = newSize;
    }
  }
}