Skip to content

DPL: Allow overriding array values in ConfigParamRegistry - #15927

Open
aalkin wants to merge 5 commits into
AliceO2Group:devfrom
aalkin:add-configparamregistry-array-overrides
Open

aalkin wants to merge 5 commits into
AliceO2Group:devfrom
aalkin:add-configparamregistry-array-overrides

Conversation

@aalkin

@aalkin aalkin commented Oct 11, 2026

Copy link
Copy Markdown
Member

Based on required #15880, #15926.

To handle aod-metadata- per origin without altering existing mechanisms in O2Physics, we need to override and remove what is stored in the device's ConfigParamRegistry. This adds methods to remove and replace corresponding subtrees in ptree.

The copy and move assignment operators overwrote the data pointer
without releasing the previous buffer, leaking it on every assignment
to a non-empty array

Copy self-assignment also allocated the new buffer before reading from
the source, so the array was filled from its own uninitialised memory.

Now guards against self-assignment and releases the old buffer.
Copy and move of Variants holding Array2D, LabeledArray or string array
values copied the storage byte by byte, so copies shared the same heap
buffers, and the destructor never destroyed these objects, leaking them.
Assignments never released the previous content, move assignment of
strings and arrays duplicated the buffer and dropped the original one,
and move assignment of string arrays corrupted the source vector.
* Protect from long default values in `--help` output by adding a size
  limit and manually adding reduced string representation
* Use pre-existing to/from JSON conversions to dump and retrieve
  labeled arrays in command line
* Allow passing only values if the labels do not change from defaults
* Test options retrieval for the driver and devices
* Add a code path that uses put_child rather than put for vectors that
  are stored as subtrees
* Add override tests

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant