| Index: source/libvpx/vp9/decoder/vp9_read_bit_buffer.c
 | 
| ===================================================================
 | 
| --- source/libvpx/vp9/decoder/vp9_read_bit_buffer.c	(revision 293588)
 | 
| +++ source/libvpx/vp9/decoder/vp9_read_bit_buffer.c	(working copy)
 | 
| @@ -10,20 +10,20 @@
 | 
|  #include "vp9/decoder/vp9_read_bit_buffer.h"
 | 
|  
 | 
|  size_t vp9_rb_bytes_read(struct vp9_read_bit_buffer *rb) {
 | 
| -  return (rb->bit_offset + CHAR_BIT - 1) / CHAR_BIT;
 | 
| +  return (rb->bit_offset + 7) >> 3;
 | 
|  }
 | 
|  
 | 
|  int vp9_rb_read_bit(struct vp9_read_bit_buffer *rb) {
 | 
|    const size_t off = rb->bit_offset;
 | 
| -  const size_t p = off / CHAR_BIT;
 | 
| -  const int q = CHAR_BIT - 1 - (int)off % CHAR_BIT;
 | 
| -  if (rb->bit_buffer + p >= rb->bit_buffer_end) {
 | 
| +  const size_t p = off >> 3;
 | 
| +  const int q = 7 - (int)(off & 0x7);
 | 
| +  if (rb->bit_buffer + p < rb->bit_buffer_end) {
 | 
| +    const int bit = (rb->bit_buffer[p] >> q) & 1;
 | 
| +    rb->bit_offset = off + 1;
 | 
| +    return bit;
 | 
| +  } else {
 | 
|      rb->error_handler(rb->error_handler_data);
 | 
|      return 0;
 | 
| -  } else {
 | 
| -    const int bit = (rb->bit_buffer[p] & (1 << q)) >> q;
 | 
| -    rb->bit_offset = off + 1;
 | 
| -    return bit;
 | 
|    }
 | 
|  }
 | 
|  
 | 
| 
 |