|  |  | @ -2133,47 +2133,7 @@ static void decode_residue(vorb *f, float *residue_buffers[], int ch, int n, int | 
			
		
	
		
		
			
				
					
					|  |  |  |                ++class_set; |  |  |  |                ++class_set; | 
			
		
	
		
		
			
				
					
					|  |  |  |                #endif |  |  |  |                #endif | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |          } else if (ch == 1) { |  |  |  |          } else if (ch > 2) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             while (pcount < part_read) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                int z = r->begin + pcount*r->part_size; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                int c_inter = 0, p_inter = z; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                if (pass == 0) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   Codebook *c = f->codebooks+r->classbook; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   int q; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   DECODE(q,f,c); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   if (q == EOP) goto done; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   part_classdata[0][class_set] = r->classdata[q]; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   #else |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   for (i=classwords-1; i >= 0; --i) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                      classifications[0][i+pcount] = q % r->classifications; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                      q /= r->classifications; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   #endif |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                for (i=0; i < classwords && pcount < part_read; ++i, ++pcount) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   int z = r->begin + pcount*r->part_size; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   int c = part_classdata[0][class_set][i]; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   #else |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   int c = classifications[0][pcount]; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   #endif |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   int b = r->residue_books[c][pass]; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   if (b >= 0) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                      Codebook *book = f->codebooks + b; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                      if (!codebook_decode_deinterleave_repeat(f, book, residue_buffers, ch, &c_inter, &p_inter, n, r->part_size)) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         goto done; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   } else { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                      z += r->part_size; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                      c_inter = 0; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                      p_inter = z; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                ++class_set; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                #endif |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |          } else { |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             while (pcount < part_read) { |  |  |  |             while (pcount < part_read) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                int z = r->begin + pcount*r->part_size; |  |  |  |                int z = r->begin + pcount*r->part_size; | 
			
		
	
		
		
			
				
					
					|  |  |  |                int c_inter = z % ch, p_inter = z/ch; |  |  |  |                int c_inter = z % ch, p_inter = z/ch; | 
			
		
	
	
		
		
			
				
					|  |  | 
 |