From 50b790c6d4d759c77157317ef768baf86f1544c9 Mon Sep 17 00:00:00 2001 From: Igor Canadi Date: Tue, 19 Aug 2014 06:48:21 -0700 Subject: [PATCH] Removing BitStream* functions Summary: I was checking some functions in coding.h and coding.cc when I noticed these unused functions. Let's remove them. Test Plan: compiles Reviewers: sdong, ljin, yhchiang, dhruba Reviewed By: dhruba Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D22077 --- util/coding.cc | 88 -------------------------------------------------- util/coding.h | 36 --------------------- 2 files changed, 124 deletions(-) diff --git a/util/coding.cc b/util/coding.cc index 31ae0e356..f09e67284 100644 --- a/util/coding.cc +++ b/util/coding.cc @@ -78,92 +78,4 @@ const char* GetVarint64Ptr(const char* p, const char* limit, uint64_t* value) { return nullptr; } -void BitStreamPutInt(char* dst, size_t dstlen, size_t offset, - uint32_t bits, uint64_t value) { - assert((offset + bits + 7)/8 <= dstlen); - assert(bits <= 64); - - unsigned char* ptr = reinterpret_cast(dst); - - size_t byteOffset = offset / 8; - size_t bitOffset = offset % 8; - - // This prevents unused variable warnings when compiling. -#ifndef NDEBUG - // Store truncated value. - uint64_t origValue = (bits < 64)?(value & (((uint64_t)1 << bits) - 1)):value; - uint32_t origBits = bits; -#endif - - while (bits > 0) { - size_t bitsToGet = std::min(bits, 8 - bitOffset); - unsigned char mask = ((1 << bitsToGet) - 1); - - ptr[byteOffset] = (ptr[byteOffset] & ~(mask << bitOffset)) + - ((value & mask) << bitOffset); - - value >>= bitsToGet; - byteOffset += 1; - bitOffset = 0; - bits -= bitsToGet; - } - - assert(origValue == BitStreamGetInt(dst, dstlen, offset, origBits)); -} - -uint64_t BitStreamGetInt(const char* src, size_t srclen, size_t offset, - uint32_t bits) { - assert((offset + bits + 7)/8 <= srclen); - assert(bits <= 64); - - const unsigned char* ptr = reinterpret_cast(src); - - uint64_t result = 0; - - size_t byteOffset = offset / 8; - size_t bitOffset = offset % 8; - size_t shift = 0; - - while (bits > 0) { - size_t bitsToGet = std::min(bits, 8 - bitOffset); - unsigned char mask = ((1 << bitsToGet) - 1); - - result += (uint64_t)((ptr[byteOffset] >> bitOffset) & mask) << shift; - - shift += bitsToGet; - byteOffset += 1; - bitOffset = 0; - bits -= bitsToGet; - } - - return result; -} - -void BitStreamPutInt(std::string* dst, size_t offset, uint32_t bits, - uint64_t value) { - assert((offset + bits + 7)/8 <= dst->size()); - - const size_t kTmpBufLen = sizeof(value) + 1; - char tmpBuf[kTmpBufLen]; - - // Number of bytes of tmpBuf being used - const size_t kUsedBytes = (offset%8 + bits)/8; - - // Copy relevant parts of dst to tmpBuf - for (size_t idx = 0; idx <= kUsedBytes; ++idx) { - tmpBuf[idx] = (*dst)[offset/8 + idx]; - } - - BitStreamPutInt(tmpBuf, kTmpBufLen, offset%8, bits, value); - - // Copy tmpBuf back to dst - for (size_t idx = 0; idx <= kUsedBytes; ++idx) { - (*dst)[offset/8 + idx] = tmpBuf[idx]; - } - - // Do the check here too as we are working with a buffer. - assert(((bits < 64)?(value & (((uint64_t)1 << bits) - 1)):value) == - BitStreamGetInt(dst, offset, bits)); -} - } // namespace rocksdb diff --git a/util/coding.h b/util/coding.h index 6ad2077d4..fa6652668 100644 --- a/util/coding.h +++ b/util/coding.h @@ -115,32 +115,6 @@ inline const char* GetVarint32Ptr(const char* p, return GetVarint32PtrFallback(p, limit, value); } -// Writes an unsigned integer with bits number of bits with its least -// significant bit at offset. -// Bits are numbered from 0 to 7 in the first byte, 8 to 15 in the second and -// so on. -// value is truncated to the bits number of least significant bits. -// REQUIRES: (offset+bits+7)/8 <= dstlen -// REQUIRES: bits <= 64 -extern void BitStreamPutInt(char* dst, size_t dstlen, size_t offset, - uint32_t bits, uint64_t value); - -// Reads an unsigned integer with bits number of bits with its least -// significant bit at offset. -// Bits are numbered in the same way as ByteStreamPutInt(). -// REQUIRES: (offset+bits+7)/8 <= srclen -// REQUIRES: bits <= 64 -extern uint64_t BitStreamGetInt(const char* src, size_t srclen, size_t offset, - uint32_t bits); - -// Convenience functions -extern void BitStreamPutInt(std::string* dst, size_t offset, uint32_t bits, - uint64_t value); -extern uint64_t BitStreamGetInt(const std::string* src, size_t offset, - uint32_t bits); -extern uint64_t BitStreamGetInt(const Slice* src, size_t offset, - uint32_t bits); - // -- Implementation of the functions declared above inline void EncodeFixed32(char* buf, uint32_t value) { #if __BYTE_ORDER == __LITTLE_ENDIAN @@ -291,14 +265,4 @@ inline Slice GetSliceUntil(Slice* slice, char delimiter) { return ret; } -inline uint64_t BitStreamGetInt(const std::string* src, size_t offset, - uint32_t bits) { - return BitStreamGetInt(src->data(), src->size(), offset, bits); -} - -inline uint64_t BitStreamGetInt(const Slice* src, size_t offset, - uint32_t bits) { - return BitStreamGetInt(src->data(), src->size(), offset, bits); -} - } // namespace rocksdb