Re: [Quickfix-developers] Rawdata field
Brought to you by:
orenmnero
From: Alexey Z. <ale...@in...> - 2005-05-31 16:15:54
|
Caleb, Thank you. The patch solved the problem. P.S. Misspelling: reinterpret_cast Regards, Alexey Zubko Caleb Epstein wrote: >On 5/31/05, Alexey Zubko <ale...@in...> wrote: > > > >> Enclosed are the logs. >> >> > >I actually get crashes trying to send the last message in that >.outgoing file (the one with the 0xA4 bytes in RawData). It looks >like the CheckSum calculation gets messed up by high-bit ASCII >characters and goes negative, which is out-of-spec. This patch fixes >the problem. > >diff -u -b -u -p -r1.18 Field.h >--- Field.h 28 Dec 2004 15:23:26 -0000 1.18 >+++ Field.h 31 May 2005 15:44:37 -0000 >@@ -121,7 +121,10 @@ private: > m_length = m_data.length(); > } > >- const char* iter = m_data.c_str(); >+ // Treat strings as unsigned in case values contain high-bit >+ // chars. Don't want checksum to go negative. >+ const unsigned char* iter = >+ reintepret_cast<const unsigned char*> (m_data.c_str()); > m_total = std::accumulate( iter, iter + m_length, 0 ); > > m_calculated = true; > > > |