summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2019-04-30 12:20:40 +0200
committerTor Egge <Tor.Egge@broadpark.no>2019-04-30 14:24:52 +0200
commit4ff8b123a23d91c9838979317ae434d16ef0054e (patch)
tree2c3db8bed28033fe2a29d65dd512e028d3f11c90 /searchlib
parent788679214d55735e6f5f95c1dcae3a30bcbb6764 (diff)
Remove unneeded template endian parameter for reading bytes and header
from decode context.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/bitcompression/compression.cpp7
-rw-r--r--searchlib/src/vespa/searchlib/bitcompression/compression.h82
2 files changed, 34 insertions, 55 deletions
diff --git a/searchlib/src/vespa/searchlib/bitcompression/compression.cpp b/searchlib/src/vespa/searchlib/bitcompression/compression.cpp
index dfcdd991b22..83776d22fee 100644
--- a/searchlib/src/vespa/searchlib/bitcompression/compression.cpp
+++ b/searchlib/src/vespa/searchlib/bitcompression/compression.cpp
@@ -133,10 +133,8 @@ vespalib::string noFeatures = "NoFeatures";
}
-template <bool bigEndian>
void
-FeatureDecodeContext<bigEndian>::
-readBytes(uint8_t *buf, size_t len)
+DecodeContext64Base::readBytes(uint8_t *buf, size_t len)
{
while (len > 0) {
// Ensure that buffer to read from isn't empty
@@ -167,9 +165,8 @@ readBytes(uint8_t *buf, size_t len)
}
-template <bool bigEndian>
uint32_t
-FeatureDecodeContext<bigEndian>::
+DecodeContext64Base::
readHeader(vespalib::GenericHeader &header, int64_t fileSize)
{
size_t hhSize = vespalib::GenericHeader::getMinSize();
diff --git a/searchlib/src/vespa/searchlib/bitcompression/compression.h b/searchlib/src/vespa/searchlib/bitcompression/compression.h
index 67e23aabc1e..33b5e0b0975 100644
--- a/searchlib/src/vespa/searchlib/bitcompression/compression.h
+++ b/searchlib/src/vespa/searchlib/bitcompression/compression.h
@@ -1136,6 +1136,7 @@ public:
// File position for end of buffer minus byte address of end of buffer
// minus sizeof uint64_t. Then shifted left by 3 to represent bits.
uint64_t _fileReadBias;
+ search::ComprFileReadContext *_readContext;
DecodeContext64Base()
: search::ComprFileDecodeContext(),
@@ -1145,7 +1146,8 @@ public:
_val(0),
_cacheInt(0),
_preRead(0),
- _fileReadBias(0)
+ _fileReadBias(0),
+ _readContext(nullptr)
{
}
@@ -1163,7 +1165,8 @@ public:
_val(val),
_cacheInt(cacheInt),
_preRead(preRead),
- _fileReadBias(0)
+ _fileReadBias(0),
+ _readContext(nullptr)
{
}
@@ -1183,6 +1186,7 @@ public:
_cacheInt = rhs._cacheInt;
_preRead = rhs._preRead;
_fileReadBias = rhs._fileReadBias;
+ _readContext = rhs._readContext;
return *this;
}
@@ -1278,6 +1282,24 @@ public:
return (val >> 1);
}
}
+
+ void setReadContext(search::ComprFileReadContext *readContext) {
+ _readContext = readContext;
+ }
+ search::ComprFileReadContext *getReadContext() const {
+ return _readContext;
+ }
+ void readComprBuffer() {
+ _readContext->readComprBuffer();
+ }
+ void readComprBufferIfNeeded() {
+ if (__builtin_expect(_valI >= _valE, false)) {
+ readComprBuffer();
+ }
+ }
+ virtual uint64_t readBits(uint32_t length) = 0;
+ void readBytes(uint8_t *buf, size_t len);
+ uint32_t readHeader(vespalib::GenericHeader &header, int64_t fileSize);
};
@@ -1436,7 +1458,7 @@ public:
}
uint64_t
- readBits(uint32_t length)
+ readBits(uint32_t length) override
{
uint64_t res;
if (length < 64) {
@@ -1489,7 +1511,6 @@ template <bool bigEndian>
class FeatureDecodeContext : public DecodeContext64<bigEndian>
{
public:
- search::ComprFileReadContext *_readContext;
typedef DecodeContext64<bigEndian> ParentClass;
typedef index::DocIdAndFeatures DocIdAndFeatures;
typedef index::PostingListParams PostingListParams;
@@ -1504,68 +1525,29 @@ public:
using ParentClass::getBitOffset;
using ParentClass::readBits;
using ParentClass::ReadBits;
+ using ParentClass::readComprBuffer;
+ using ParentClass::readComprBufferIfNeeded;
+ using ParentClass::readHeader;
+ using ParentClass::readBytes;
FeatureDecodeContext()
- : ParentClass(),
- _readContext(nullptr)
+ : ParentClass()
{
}
FeatureDecodeContext(const uint64_t *compr,
int bitOffset)
- : ParentClass(compr, bitOffset),
- _readContext(nullptr)
+ : ParentClass(compr, bitOffset)
{
}
FeatureDecodeContext(const uint64_t *compr,
int bitOffset,
uint64_t bitLength)
- : ParentClass(compr, bitOffset, bitLength),
- _readContext(nullptr)
- {
- }
-
- FeatureDecodeContext &
- operator=(const FeatureDecodeContext &rhs)
- {
- ParentClass::operator=(rhs);
- _readContext = rhs._readContext;
- return *this;
- }
-
- void
- setReadContext(search::ComprFileReadContext *readContext)
+ : ParentClass(compr, bitOffset, bitLength)
{
- _readContext = readContext;
}
- search::ComprFileReadContext *
- getReadContext() const
- {
- return _readContext;
- }
-
- void
- readComprBuffer()
- {
- _readContext->readComprBuffer();
- }
-
- void
- readComprBufferIfNeeded()
- {
- if (__builtin_expect(_valI >= _valE, false)) {
- readComprBuffer();
- }
- }
-
- void
- readBytes(uint8_t *buf, size_t len);
-
- virtual uint32_t
- readHeader(vespalib::GenericHeader &header, int64_t fileSize);
-
virtual void
readHeader(const vespalib::GenericHeader &header,
const vespalib::string &prefix);