Fix RunLengthEncoding for older compilers
This commit is contained in:
parent
b8a017b09c
commit
64b8862652
@ -91,7 +91,8 @@ namespace blockstore {
|
||||
}
|
||||
|
||||
Data RunLengthEncoding::Decompress(const void *data, size_t size) {
|
||||
istringstream stream = _parseData((uint8_t*)data, size);
|
||||
istringstream stream;
|
||||
_parseData((uint8_t*)data, size, &stream);
|
||||
ostringstream decompressed;
|
||||
while(_hasData(&stream)) {
|
||||
_decodeArbitraryWords(&stream, &decompressed);
|
||||
@ -108,11 +109,8 @@ namespace blockstore {
|
||||
return !str->eof();
|
||||
}
|
||||
|
||||
istringstream RunLengthEncoding::_parseData(const uint8_t *data, size_t size) {
|
||||
string str((const char*)data, size);
|
||||
istringstream result;
|
||||
result.str(str);
|
||||
return result;
|
||||
void RunLengthEncoding::_parseData(const uint8_t *data, size_t size, istringstream *result) {
|
||||
result->str(string((const char*)data, size));
|
||||
}
|
||||
|
||||
void RunLengthEncoding::_decodeArbitraryWords(istringstream *stream, ostringstream *decompressed) {
|
||||
|
@ -19,7 +19,7 @@ namespace blockstore {
|
||||
static uint16_t _countIdenticalBytes(uint8_t *start, uint8_t *end);
|
||||
static bool _hasData(std::istringstream *stream);
|
||||
static cpputils::Data _extractData(std::ostringstream *stream);
|
||||
static std::istringstream _parseData(const uint8_t *data, size_t size);
|
||||
static void _parseData(const uint8_t *data, size_t size, std::istringstream *result);
|
||||
static void _decodeArbitraryWords(std::istringstream *stream, std::ostringstream *decompressed);
|
||||
static void _decodeIdenticalWords(std::istringstream *stream, std::ostringstream *decompressed);
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user