public void Resize()

in src/log4net/Util/CyclicBuffer.cs [210:252]


  public void Resize(int newSize) 
  {
    lock (syncRoot)
    {
      if (newSize < 0) 
      {
        throw SystemInfo.CreateArgumentOutOfRangeException(nameof(newSize), newSize, $"Parameter: {nameof(newSize)}, Value: [{newSize}] out of range. A positive integer is required.");
      }
      if (newSize == numElems)
      {
        return; // nothing to do
      }

      LoggingEvent[] temp = new LoggingEvent[newSize];

      int loopLen = (newSize < numElems) ? newSize : numElems;

      for(int i = 0; i < loopLen; i++) 
      {
        temp[i] = events[first];
        events[first] = null;

        if (++first == numElems) 
        {
          first = 0;
        }
      }

      events = temp;
      first = 0;
      numElems = loopLen;
      maxSize = newSize;

      if (loopLen == newSize) 
      {
        last = 0;
      } 
      else 
      {
        last = loopLen;
      }
    }
  }