From d5dc9a46f0aff3039c679ad98ef1abbea5272efe Mon Sep 17 00:00:00 2001 From: Giovanna Lazzari Miotto <giovanna.lazzari.miotto@cern.ch> Date: Tue, 23 Apr 2024 18:20:39 +0200 Subject: [PATCH] chore: Change orbit count to signed 32-bit --- src/orbit_processor.cc | 10 ++++++---- src/orbit_processor.h | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/orbit_processor.cc b/src/orbit_processor.cc index 56622513..e9bbbf94 100644 --- a/src/orbit_processor.cc +++ b/src/orbit_processor.cc @@ -104,9 +104,11 @@ OrbitProcessor::FillOrbitMetadata OrbitProcessor::FillOrbit(orbit_trailer *trail char *wr_ptr, const char *rd_end_ptr, const char *wr_end_ptr, bool is_dropped_orbit) { - std::pair<uint32_t, bool> orbit_header = std::pair<uint32_t, bool>{ProcessOrbitHeader(rd_ptr)}; - uint32_t orbit = uint32_t{orbit_header.first}; - if (orbit <= 0) return {0, 0, 0}; + std::pair<uint32_t, bool> orbit_header = ProcessOrbitHeader(rd_ptr); + auto orbit = static_cast<int>(orbit_header.first); + if (orbit <= 0) { + return {0, 0, 0}; + } //.second is the warning test enable bit rd_ptr += 32; // +32 to account for orbit header if (cmsswHeaders) { @@ -141,7 +143,7 @@ OrbitProcessor::FillOrbitMetadata OrbitProcessor::FillOrbit(orbit_trailer *trail WriteMemRegion writeable_block(&wr_ptr, wr_end_ptr); assert(writeable_block.CheckBounds(GetPacketSize())); // Max size a decoded block can use - BxMetadata meta{orbit_header.second, bx, orbit}; + BxMetadata meta{orbit_header.second, static_cast<uint32_t>(bx), orbit}; const int ret_counts = ProcessBlock(readable_block, writeable_block, meta); if (ret_counts == -1) { diff --git a/src/orbit_processor.h b/src/orbit_processor.h index 8702bda3..e9844265 100644 --- a/src/orbit_processor.h +++ b/src/orbit_processor.h @@ -1,6 +1,8 @@ #ifndef ORBIT_PROCESSOR_H #define ORBIT_PROCESSOR_H +#include <cassert> + #include "config.h" #include "controls.h" #include "format.h" @@ -42,7 +44,7 @@ class OrbitProcessor : public Processor { protected: struct FillOrbitMetadata { uint32_t counts; - uint32_t orbit; + int orbit; uint32_t filled_bxs; }; @@ -67,7 +69,7 @@ class OrbitProcessor : public Processor { struct BxMetadata { uint32_t header; uint32_t bx; - uint32_t orbit; + int orbit; }; template <typename T, uint32_t N> -- GitLab