mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-27 02:19:10 +00:00
Use crc32 calculation from zlib instead of boost
This commit is contained in:
parent
3e167f9fe7
commit
197ea63631
@ -608,8 +608,8 @@ unsigned long FileName::checksum() const
|
||||
return 0;
|
||||
}
|
||||
|
||||
char * beg = static_cast<char*>(mm);
|
||||
char * end = beg + info.st_size;
|
||||
unsigned char * beg = static_cast<unsigned char*>(mm);
|
||||
unsigned char * end = beg + info.st_size;
|
||||
|
||||
result = support::checksum(beg, end);
|
||||
|
||||
|
@ -9,9 +9,10 @@
|
||||
* Full author contact details are available in file CREDITS.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include "support/checksum.h"
|
||||
#include "boost/crc.hpp"
|
||||
#include <algorithm>
|
||||
|
||||
#include <zlib.h>
|
||||
|
||||
namespace lyx {
|
||||
|
||||
@ -19,9 +20,8 @@ namespace support {
|
||||
|
||||
unsigned long checksum(std::string const & s)
|
||||
{
|
||||
boost::crc_32_type crc;
|
||||
crc.process_bytes(s.c_str(), s.size());
|
||||
return crc.checksum();
|
||||
auto p = reinterpret_cast<unsigned char const *>(s.c_str());
|
||||
return crc32(0, p, s.size());
|
||||
}
|
||||
|
||||
unsigned long checksum(std::ifstream & ifs)
|
||||
@ -29,16 +29,17 @@ unsigned long checksum(std::ifstream & ifs)
|
||||
std::istreambuf_iterator<char> beg(ifs);
|
||||
std::istreambuf_iterator<char> end;
|
||||
|
||||
boost::crc_32_type crc;
|
||||
crc = for_each(beg, end, crc);
|
||||
return crc.checksum();
|
||||
unsigned long sum = 0;
|
||||
for (auto & it = beg; beg != end; ++it) {
|
||||
unsigned char c = *it;
|
||||
sum = crc32(sum, &c, 1);
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
unsigned long checksum(char const * beg, char const * end)
|
||||
unsigned long checksum(unsigned char const * beg, unsigned char const * end)
|
||||
{
|
||||
boost::crc_32_type crc;
|
||||
crc.process_block(beg, end);
|
||||
return crc.checksum();
|
||||
return crc32(0, beg, end - beg);
|
||||
}
|
||||
|
||||
} // namespace support
|
||||
|
@ -21,7 +21,7 @@ namespace support {
|
||||
|
||||
unsigned long checksum(std::string const & s);
|
||||
unsigned long checksum(std::ifstream & ifs);
|
||||
unsigned long checksum(char const * beg, char const * end);
|
||||
unsigned long checksum(unsigned char const * beg, unsigned char const * end);
|
||||
|
||||
} // namespace support
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user