|  | @@ -29,7 +29,6 @@ type Reader interface {
 | 
											
												
													
														|  |  type AdaptiveReader struct {
 |  |  type AdaptiveReader struct {
 | 
											
												
													
														|  |  	reader   io.Reader
 |  |  	reader   io.Reader
 | 
											
												
													
														|  |  	allocate func() *alloc.Buffer
 |  |  	allocate func() *alloc.Buffer
 | 
											
												
													
														|  | -	isLarge  bool
 |  | 
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  // NewAdaptiveReader creates a new AdaptiveReader.
 |  |  // NewAdaptiveReader creates a new AdaptiveReader.
 | 
											
										
											
												
													
														|  | @@ -38,7 +37,6 @@ func NewAdaptiveReader(reader io.Reader) *AdaptiveReader {
 | 
											
												
													
														|  |  	return &AdaptiveReader{
 |  |  	return &AdaptiveReader{
 | 
											
												
													
														|  |  		reader:   reader,
 |  |  		reader:   reader,
 | 
											
												
													
														|  |  		allocate: alloc.NewBuffer,
 |  |  		allocate: alloc.NewBuffer,
 | 
											
												
													
														|  | -		isLarge:  false,
 |  | 
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -46,12 +44,10 @@ func NewAdaptiveReader(reader io.Reader) *AdaptiveReader {
 | 
											
												
													
														|  |  func (this *AdaptiveReader) Read() (*alloc.Buffer, error) {
 |  |  func (this *AdaptiveReader) Read() (*alloc.Buffer, error) {
 | 
											
												
													
														|  |  	buffer, err := ReadFrom(this.reader, this.allocate())
 |  |  	buffer, err := ReadFrom(this.reader, this.allocate())
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -	if buffer.IsFull() && !this.isLarge {
 |  | 
 | 
											
												
													
														|  | 
 |  | +	if buffer.Len() >= alloc.BufferSize {
 | 
											
												
													
														|  |  		this.allocate = alloc.NewLargeBuffer
 |  |  		this.allocate = alloc.NewLargeBuffer
 | 
											
												
													
														|  | -		this.isLarge = true
 |  | 
 | 
											
												
													
														|  | -	} else if !buffer.IsFull() {
 |  | 
 | 
											
												
													
														|  | 
 |  | +	} else {
 | 
											
												
													
														|  |  		this.allocate = alloc.NewBuffer
 |  |  		this.allocate = alloc.NewBuffer
 | 
											
												
													
														|  | -		this.isLarge = false
 |  | 
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	if err != nil {
 |  |  	if err != nil {
 |