|  | @@ -45,14 +45,12 @@ func (this *ChanReader) Read(b []byte) (int, error) {
 | 
	
		
			
				|  |  |  			return 0, io.EOF
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	nBytes := copy(b, this.current.Value)
 | 
	
		
			
				|  |  | -	if nBytes == this.current.Len() {
 | 
	
		
			
				|  |  | +	nBytes, err := this.current.Read(b)
 | 
	
		
			
				|  |  | +	if this.current.IsEmpty() {
 | 
	
		
			
				|  |  |  		this.current.Release()
 | 
	
		
			
				|  |  |  		this.current = nil
 | 
	
		
			
				|  |  | -	} else {
 | 
	
		
			
				|  |  | -		this.current.SliceFrom(nBytes)
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	return nBytes, nil
 | 
	
		
			
				|  |  | +	return nBytes, err
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func (this *ChanReader) Release() {
 |