![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
Functions | |
| StorageLoc *& | checkedTraversal (size_t segments, StorageLoc *last) |
| void | checkedDetach (size_t segments, StorageLoc *seg, void *chainBlock) |
|
inline |
helper for safety-check when attaching segments. New segments are created by a constructor functor, guided by a type signature describing the complete chain. When attaching new segments, we can not verify that the base chain to extend does really match the presumed chain structure as encoded into the type (since this base chain does not store any meta data). But at least we can verify that the number of real segment-links matches the assumed structure. Notably it does not really matter what is stored in the base chain, as long as this segment count matches, because accessor functors generated by a HeteroData::Chain constructor will always address only their own (newly added) segment.
Definition at line 341 of file hetero-data.hpp.
References checkedTraversal().
Referenced by checkedTraversal().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
detach the HeteroData-chain at the link to the given chainBlock. This enables some additional data sanity, because the internal chain can thus be severed when an extension data block is known to go out of scope. If somehow a store accessor is used after that point, the system will be halted when attempting to navigate to the (now defunct) data block.
Definition at line 365 of file hetero-data.hpp.
References checkedDetach(), and StorageLoc::next.
Referenced by checkedDetach().
Here is the call graph for this function:
Here is the caller graph for this function: