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) {
|
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;
|
ostringstream decompressed;
|
||||||
while(_hasData(&stream)) {
|
while(_hasData(&stream)) {
|
||||||
_decodeArbitraryWords(&stream, &decompressed);
|
_decodeArbitraryWords(&stream, &decompressed);
|
||||||
@ -108,11 +109,8 @@ namespace blockstore {
|
|||||||
return !str->eof();
|
return !str->eof();
|
||||||
}
|
}
|
||||||
|
|
||||||
istringstream RunLengthEncoding::_parseData(const uint8_t *data, size_t size) {
|
void RunLengthEncoding::_parseData(const uint8_t *data, size_t size, istringstream *result) {
|
||||||
string str((const char*)data, size);
|
result->str(string((const char*)data, size));
|
||||||
istringstream result;
|
|
||||||
result.str(str);
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RunLengthEncoding::_decodeArbitraryWords(istringstream *stream, ostringstream *decompressed) {
|
void RunLengthEncoding::_decodeArbitraryWords(istringstream *stream, ostringstream *decompressed) {
|
||||||
|
@ -19,7 +19,7 @@ namespace blockstore {
|
|||||||
static uint16_t _countIdenticalBytes(uint8_t *start, uint8_t *end);
|
static uint16_t _countIdenticalBytes(uint8_t *start, uint8_t *end);
|
||||||
static bool _hasData(std::istringstream *stream);
|
static bool _hasData(std::istringstream *stream);
|
||||||
static cpputils::Data _extractData(std::ostringstream *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 _decodeArbitraryWords(std::istringstream *stream, std::ostringstream *decompressed);
|
||||||
static void _decodeIdenticalWords(std::istringstream *stream, std::ostringstream *decompressed);
|
static void _decodeIdenticalWords(std::istringstream *stream, std::ostringstream *decompressed);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user