void LcfReader::Read(void *ptr, size_t size, size_t nmemb) { #ifdef NDEBUG Read0(ptr, size, nmemb); #else assert(Read0(ptr, size, nmemb) == nmemb); #endif }
void LcfReader::Read(void *ptr, size_t size, size_t nmemb) { #ifdef NDEBUG Read0(ptr, size, nmemb); #else if (Read0(ptr, size, nmemb) != nmemb) { fprintf(stderr, "Read error at %d. The file is probably corrupted\n", Tell()); } #endif }
int LcfReader::ReadInt() { int value = 0; unsigned char temp = 0; do { value <<= 7; if (Read0(&temp, 1, 1) == 0) { assert(value == 0); return 0; } value |= temp & 0x7F; } while (temp & 0x80); return value; }
int LcfReader::ReadInt() { int value = 0; unsigned char temp = 0; int loops = 0; do { value <<= 7; if (Read0(&temp, 1, 1) == 0) { assert(value == 0); return 0; } value |= temp & 0x7F; if (loops > 5) { fprintf(stderr, "Invalid compressed integer at %d\n", Tell()); } ++loops; } while (temp & 0x80); return loops > 5 ? 0 : value; }