Skip to content

TrkGeometry Layers Part1: Create non-const overloads set/resize/move , remove some mutable, mark const one as unsafe

The Layer class and (its derivatives) has a few methods named like set,move,resize and combinations of these worlds. In reality none of them are really const as they modify the object , which then leads to mutable state.

What is going on in this MR (most of the changes are in the header files) :

  1. Remove a bunch of mutable
  2. Make the set/move/resize changing operations/methods non-const
  3. For combatibility still provide const ones (trying to not replicate implementations)
  4. Last but quite importand !! Mark the const ones explicitly as unsafe --> ATLAS_NOT_THREAD_SAFE

Hopefully most of the clients will not really modify/apply setters to const objects (or movers or resizers), so we should be able to remove a few of the const / unsafe overlaods. Also marking them should help catch such cases

Also, still there are remain a few mutable in Layer.h some are accessed via friendship which can throw another spanner . Leaving them for Part2 or Part3 ....

Mentioning @ssnyder , @goetz , @oda ,@amorley

Edited by Christos Anastopoulos

Merge request reports