@@ -198,33 +198,39 @@ static inline uint64_t fr_nbo_to_uint64v(uint8_t const *data, size_t data_len)
198198 uint64_t num = 0 ;
199199 uint64_t nbo ;
200200
201- if (unlikely (data_len > sizeof (uint64_t ))) return 0 ;
201+ if (unlikely (data_len > sizeof (nbo ))) return 0 ;
202202
203203 /*
204204 * Copy at an offset into memory
205205 * allocated for the uin64_t
206206 */
207- memcpy (((uint8_t * )& num ) + (sizeof (uint64_t ) - data_len ), data , data_len ); /* aligned */
207+ memcpy (((uint8_t * )& num ) + (sizeof (nbo ) - data_len ), data , data_len ); /* aligned */
208208 fr_nbo_from_uint64 ((uint8_t * )& nbo , num );
209209
210210 return nbo ;
211211}
212212
213- static inline uint64_t fr_nbo_to_int64v (uint8_t const * data , size_t data_len )
213+ /** Read a signed 64bit integer from wire format (big endian) with a variable length encoding
214+ *
215+ * @param[in] data Buffer containing the number.
216+ * @param[in] data_len Length of number.
217+ * @return a 64 bit signed integer of native endianness.
218+ */
219+ static inline int64_t fr_nbo_to_int64v (uint8_t const * data , size_t data_len )
214220{
215221 int64_t num = 0 ;
216- uint64_t nbo ;
222+ int64_t nbo ;
217223
218- if (unlikely (data_len > sizeof (uint64_t ))) return 0 ;
224+ if (unlikely (data_len > sizeof (nbo ))) return 0 ;
219225
220226 /*
221227 * Copy at an offset into memory
222228 * allocated for the uin64_t
223229 */
224- memcpy (((uint8_t * )& num ) + (sizeof (uint64_t ) - data_len ), data , data_len ); /* aligned */
225- if (* data & 0x80 ) memset (((uint8_t * )& num ) + data_len , 0xff , sizeof (num ) - data_len );
230+ memcpy (((uint8_t * )& num ) + (sizeof (nbo ) - data_len ), data , data_len ); /* aligned */
231+ if (* data & 0x80 ) memset (((uint8_t * )& num ), 0xff , sizeof (num ) - data_len );
226232
227- fr_nbo_from_uint64 ((uint8_t * )& nbo , num );
233+ fr_nbo_from_int64 ((uint8_t * )& nbo , num );
228234
229235 return nbo ;
230236}
0 commit comments