mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-24 17:09:41 +00:00
ParagraphMetrics::computeRowSignature(): Fix crc computing; char_type is 4 bytes!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21666 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
1b147f12b0
commit
b3ae9f9b71
@ -103,17 +103,20 @@ size_t ParagraphMetrics::computeRowSignature(Row const & row,
|
|||||||
boost::crc_32_type crc;
|
boost::crc_32_type crc;
|
||||||
for (pos_type i = row.pos(); i < row.endpos(); ++i) {
|
for (pos_type i = row.pos(); i < row.endpos(); ++i) {
|
||||||
char_type const b[] = { par_->getChar(i) };
|
char_type const b[] = { par_->getChar(i) };
|
||||||
crc.process_bytes(b, 1);
|
// char_type is 4 bytes!
|
||||||
|
crc.process_bytes(b, 4);
|
||||||
if (bparams.trackChanges) {
|
if (bparams.trackChanges) {
|
||||||
Change change = par_->lookupChange(i);
|
Change change = par_->lookupChange(i);
|
||||||
char_type const b[] = { change.type };
|
char_type const b[] = { change.type };
|
||||||
|
// 1 byte is enough to encode Change::Type
|
||||||
crc.process_bytes(b, 1);
|
crc.process_bytes(b, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Dimension const & d = row.dimension();
|
Dimension const & d = row.dimension();
|
||||||
char_type const b[] = { row.sel_beg, row.sel_end, d.wid, d.asc, d.des};
|
char_type const b[] = { row.sel_beg, row.sel_end, d.wid, d.asc, d.des};
|
||||||
crc.process_bytes(b, 5);
|
// Each of the variable to process is 4 bytes: 4x5 = 20
|
||||||
|
crc.process_bytes(b, 20);
|
||||||
|
|
||||||
return crc.checksum();
|
return crc.checksum();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user