From b3ae9f9b719427cc30f86c66be9b654785cb9f5d Mon Sep 17 00:00:00 2001 From: Abdelrazak Younes Date: Sun, 18 Nov 2007 21:47:46 +0000 Subject: [PATCH] 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 --- src/ParagraphMetrics.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ParagraphMetrics.cpp b/src/ParagraphMetrics.cpp index f8901ecfc7..5b44466eeb 100644 --- a/src/ParagraphMetrics.cpp +++ b/src/ParagraphMetrics.cpp @@ -103,17 +103,20 @@ size_t ParagraphMetrics::computeRowSignature(Row const & row, boost::crc_32_type crc; for (pos_type i = row.pos(); i < row.endpos(); ++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) { Change change = par_->lookupChange(i); char_type const b[] = { change.type }; + // 1 byte is enough to encode Change::Type crc.process_bytes(b, 1); } } Dimension const & d = row.dimension(); 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(); } -- 2.39.5