code: int newElement() {
  		int element = m_firstFree;
  		if (element == -1) {
  			if (m_last == m_capacity) {
  				long newcap = m_capacity != 0 ? (((long) m_capacity + 1) * 3 / 2)
  						: (long) 1;
  				if (newcap > Integer.MAX_VALUE)
  					newcap = Integer.MAX_VALUE;// cannot grow past 2gb elements
  												// presently
  
  				if (newcap == m_capacity)
  					throw new IndexOutOfBoundsException();
  
  				grow_(newcap);
  			}
  
  			element = ((m_last / m_blockSize) << m_blockPower)
  					+ (m_last % m_blockSize) * m_realStride;
  			m_last++;
  		} else {
  			m_firstFree = m_buffer[element >> m_blockPower][element
  					& m_blockMask];
  		}
  
  		m_size++;
  		int ar[] = m_buffer[element >> m_blockPower];
  		int ind = element & m_blockMask;
  		for (int i = 0; i < m_stride; i++) {
  			ar[ind + i] = -1;
  		}
  		return element;
  	}
docs: All fields are initialized to -1.