|  | @@ -16,18 +16,20 @@ const (
 | 
	
		
			
				|  |  |  // the buffer into an internal buffer pool, in order to recreate a buffer more
 | 
	
		
			
				|  |  |  // quickly.
 | 
	
		
			
				|  |  |  type Buffer struct {
 | 
	
		
			
				|  |  | -	head   []byte
 | 
	
		
			
				|  |  | -	pool   Pool
 | 
	
		
			
				|  |  | -	Value  []byte
 | 
	
		
			
				|  |  | -	offset int
 | 
	
		
			
				|  |  | +	head           []byte
 | 
	
		
			
				|  |  | +	pool           Pool
 | 
	
		
			
				|  |  | +	Value          []byte
 | 
	
		
			
				|  |  | +	offset         int
 | 
	
		
			
				|  |  | +	startingOffset int
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -func CreateBuffer(container []byte, parent Pool) *Buffer {
 | 
	
		
			
				|  |  | +func CreateBuffer(container []byte, offset int, parent Pool) *Buffer {
 | 
	
		
			
				|  |  |  	b := new(Buffer)
 | 
	
		
			
				|  |  |  	b.head = container
 | 
	
		
			
				|  |  |  	b.pool = parent
 | 
	
		
			
				|  |  | -	b.Value = b.head[defaultOffset:]
 | 
	
		
			
				|  |  | -	b.offset = defaultOffset
 | 
	
		
			
				|  |  | +	b.Value = b.head[offset:]
 | 
	
		
			
				|  |  | +	b.offset = offset
 | 
	
		
			
				|  |  | +	b.startingOffset = offset
 | 
	
		
			
				|  |  |  	return b
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -47,15 +49,15 @@ func (b *Buffer) Release() {
 | 
	
		
			
				|  |  |  // Clear clears the content of the buffer, results an empty buffer with
 | 
	
		
			
				|  |  |  // Len() = 0.
 | 
	
		
			
				|  |  |  func (b *Buffer) Clear() *Buffer {
 | 
	
		
			
				|  |  | -	b.offset = defaultOffset
 | 
	
		
			
				|  |  | +	b.offset = b.startingOffset
 | 
	
		
			
				|  |  |  	b.Value = b.head[b.offset:b.offset]
 | 
	
		
			
				|  |  |  	return b
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // Reset resets this Buffer into its original state.
 | 
	
		
			
				|  |  |  func (b *Buffer) Reset() *Buffer {
 | 
	
		
			
				|  |  | -	b.offset = defaultOffset
 | 
	
		
			
				|  |  | -	b.Value = b.head
 | 
	
		
			
				|  |  | +	b.offset = b.startingOffset
 | 
	
		
			
				|  |  | +	b.Value = b.head[b.offset:]
 | 
	
		
			
				|  |  |  	return b
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -219,5 +221,5 @@ func NewBuffer() *Buffer {
 | 
	
		
			
				|  |  |  //}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func NewLocalBuffer(size int) *Buffer {
 | 
	
		
			
				|  |  | -	return CreateBuffer(make([]byte, size), nil)
 | 
	
		
			
				|  |  | +	return CreateBuffer(make([]byte, size), defaultOffset, nil)
 | 
	
		
			
				|  |  |  }
 |