18 buffer->
start = (
unsigned int *) p;
19 buffer->
p = buffer->
start + 1;
26 *((buffer->
p)++) = buffer->
w << buffer->
w_bits;
32 return (
int) (((
char *) buffer->
p) - ((
char *) buffer->
start));
39 assert(code_length > 0 && code_length < 32);
42 if (code_length < buffer->w_bits) {
44 buffer->
w = (buffer->
w << code_length) | code_bits;
45 buffer->
w_bits -= code_length;
46 }
else if (code_length == buffer->
w_bits) {
48 buffer->
w = (buffer->
w << code_length) | code_bits;
49 *((buffer->
p)++) = buffer->
w;
53 unsigned int first_code_bits =
54 code_bits >> (code_length - buffer->
w_bits);
55 *((buffer->
p)++) = (buffer->
w << buffer->
w_bits) | first_code_bits;
56 buffer->
w = code_bits;
65 buffer->
start = (
unsigned int *) p;
66 buffer->
p = buffer->
start + 1;
73 buffer->
w = *((buffer->
p)++);
77 int w_bits = buffer->
w_bits;
80 if (num_bits <= w_bits) {
81 retval = buffer->
w >> (32 - num_bits);
82 buffer->
w = buffer->
w << num_bits;
83 buffer->
w_bits = w_bits - num_bits;
86 unsigned int first_part =
88 retval = first_part |
io_buffer_get(buffer, num_bits - w_bits);