aboutsummaryrefslogtreecommitdiff
path: root/libcxx/include/__random/random_device.h
diff options
context:
space:
mode:
authorEbuka Ezike <yerimyah1@gmail.com>2026-02-17 12:55:19 +0000
committerGitHub <noreply@github.com>2026-02-17 12:55:19 +0000
commit47a969ef889c9e244dfb34e6a4c4dbb5bf03ea60 (patch)
treee014a2c31fdcc1a3199c318b11aeb27673693152 /libcxx/include/__random/random_device.h
parent7d010cb9cf5df683aef9d3325b026721f3309170 (diff)
downloadllvm-main.zip
llvm-main.tar.gz
llvm-main.tar.bz2
[lldb-dap] Refactor variablesReference storage and scope management. (#179262)HEADmain
This commit refactors the Variables class into a VariableReferenceStorage with variableReferences of different ReferenceKinds. The variablesReference is now a uint32_t. The most significant byte (bits 24 - 31) holds the reference kind and the remaining 3 bytes (bits 0 -23) holds the actual reference. We have (at the moment) 3 reference kinds. Temporary => 0b0000 => 0x00 Permanent => 0b0001 => 0x01 Scope => 0b0010 => 0x03 The actual variablesReference can be used to get a `VariableStore`. VariableStore holds variables in a group. It has two implementations: - ScopeStore: Holds variables within frame scopes (locals, globals, registers). This is lazy-loaded and only fetched when variable(s) in the scope is requested. - ExpandableValueStore: Holds SBValue and fetches it's variable children when requested. ReferenceKindPool: The variablesReference created starts from 1 with the mask of the Reference kind applied. It holds vector of VariableStore of one Referencekind, This allows constant lookup of a reference Example: ```md | maskedVariablesReference | Mask | variablesReference | RefrenceKind | VariableStore | |--------------------------|------|--------------------|--------------|---------------| | 20 -> 0x00000014 | 0x00 | 20 -> 0x00000014 | temporary | ValueStore | | 268435476 -> 0x01000014 | 0x01 | 20 -> 0x00000014 | permanent | ValueStore | | 536870932 -> 0x01000014 | 0x02 | 20 -> 0x00000014 | scope | ScopeStore | ```
Diffstat (limited to 'libcxx/include/__random/random_device.h')
0 files changed, 0 insertions, 0 deletions