Skip to content

Commit bbec6fb

Browse files
authored
Merge pull request #46083 from Dr15Jones/fixEcalDigisFromPortableProducer
Safer filling of vectors in EcalDigisFromPortableProducer
2 parents da4ed04 + c04b416 commit bbec6fb

File tree

1 file changed

+6
-15
lines changed

1 file changed

+6
-15
lines changed

EventFilter/EcalRawToDigi/plugins/EcalDigisFromPortableProducer.cc

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -151,21 +151,12 @@ void EcalDigisFromPortableProducer::produce(edm::Event& event, edm::EventSetup c
151151
auto const digisEEDataSize = digisEESize * ecalPh1::sampleSize;
152152

153153
// Intermediate containers because the DigiCollection containers are accessible only as const
154-
EBDigiCollection::IdContainer digisIdsEB;
155-
EEDigiCollection::IdContainer digisIdsEE;
156-
EBDigiCollection::DataContainer digisDataEB;
157-
EEDigiCollection::DataContainer digisDataEE;
158-
159-
digisIdsEB.resize(digisEBSize);
160-
digisIdsEE.resize(digisEESize);
161-
digisDataEB.resize(digisEBDataSize);
162-
digisDataEE.resize(digisEEDataSize);
163-
164-
// copy data
165-
std::memcpy(digisIdsEB.data(), digisEBSoAView.id(), digisEBSize * sizeof(uint32_t));
166-
std::memcpy(digisIdsEE.data(), digisEESoAView.id(), digisEESize * sizeof(uint32_t));
167-
std::memcpy(digisDataEB.data(), digisEBSoAView.data()->data(), digisEBDataSize * sizeof(uint16_t));
168-
std::memcpy(digisDataEE.data(), digisEESoAView.data()->data(), digisEEDataSize * sizeof(uint16_t));
154+
EBDigiCollection::IdContainer digisIdsEB(digisEBSoAView.id(), digisEBSoAView.id() + digisEBSize);
155+
EEDigiCollection::IdContainer digisIdsEE(digisEESoAView.id(), digisEESoAView.id() + digisEESize);
156+
EBDigiCollection::DataContainer digisDataEB(digisEBSoAView.data()->data(),
157+
digisEBSoAView.data()->data() + digisEBDataSize);
158+
EEDigiCollection::DataContainer digisDataEE(digisEESoAView.data()->data(),
159+
digisEESoAView.data()->data() + digisEEDataSize);
169160

170161
digisEB->swap(digisIdsEB, digisDataEB);
171162
digisEE->swap(digisIdsEE, digisDataEE);

0 commit comments

Comments
 (0)