diff --git a/src/orbit_processor.cc b/src/orbit_processor.cc index 566225137b15b0d6251eec496a65eb9b3d235342..e9bbbf94de3d512c3bb05c3a9d1666620d21e8e7 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 8702bda3df638f80cfd54fa3c5b5d4138a46c1a6..e984426519bdc6885b475e2734861112360df643 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>