MCPcopy Create free account
hub / github.com/DFHack/dfhack / ensureBits25

Function ensureBits25

depends/lodepng/lodepng.cpp:528–544  ·  view source on GitHub ↗

See ensureBits documentation above. This one ensures up to 25 bits */

Source from the content-addressed store, hash-verified

526
527/*See ensureBits documentation above. This one ensures up to 25 bits */
528static LODEPNG_INLINE unsigned ensureBits25(LodePNGBitReader* reader, size_t nbits) {
529 size_t start = reader->bp >> 3u;
530 size_t size = reader->size;
531 if(start + 3u < size) {
532 reader->buffer = (unsigned)reader->data[start + 0] | ((unsigned)reader->data[start + 1] << 8u) |
533 ((unsigned)reader->data[start + 2] << 16u) | ((unsigned)reader->data[start + 3] << 24u);
534 reader->buffer >>= (reader->bp & 7u);
535 return 1;
536 } else {
537 reader->buffer = 0;
538 if(start + 0u < size) reader->buffer |= reader->data[start + 0];
539 if(start + 1u < size) reader->buffer |= ((unsigned)reader->data[start + 1] << 8u);
540 if(start + 2u < size) reader->buffer |= ((unsigned)reader->data[start + 2] << 16u);
541 reader->buffer >>= (reader->bp & 7u);
542 return reader->bp + nbits <= reader->bitsize;
543 }
544}
545
546/*See ensureBits documentation above. This one ensures up to 32 bits */
547static LODEPNG_INLINE unsigned ensureBits32(LodePNGBitReader* reader, size_t nbits) {

Callers 3

lode_png_test_bitreaderFunction · 0.85
getTreeInflateDynamicFunction · 0.85
inflateHuffmanBlockFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected