diff options
| author | Matt Brubeck <mbrubeck@limpet.net> | 2020-08-10 16:19:54 -0700 |
|---|---|---|
| committer | Matt Brubeck <mbrubeck@limpet.net> | 2020-09-08 17:24:23 -0700 |
| commit | ebd15e790aceeaacb01bdd5c4361c5b4be2db237 (patch) | |
| tree | 3d365e241eaf9911ffcfcbe51340583719d8869d /src/etc/lldb_providers.py | |
| parent | 15ccdeb2248f697c3873a60eea538110ed5b2f8f (diff) | |
| download | rust-ebd15e790aceeaacb01bdd5c4361c5b4be2db237.tar.gz rust-ebd15e790aceeaacb01bdd5c4361c5b4be2db237.zip | |
Implement HashSet in terms of hashbrown::HashSet
Diffstat (limited to 'src/etc/lldb_providers.py')
| -rw-r--r-- | src/etc/lldb_providers.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/etc/lldb_providers.py b/src/etc/lldb_providers.py index 19da75c35b4..64cb9837943 100644 --- a/src/etc/lldb_providers.py +++ b/src/etc/lldb_providers.py @@ -526,7 +526,7 @@ class StdHashMapSyntheticProvider: def update(self): # type: () -> None - table = self.valobj.GetChildMemberWithName("base").GetChildMemberWithName("table") + table = self.table() capacity = table.GetChildMemberWithName("bucket_mask").GetValueAsUnsigned() + 1 ctrl = table.GetChildMemberWithName("ctrl").GetChildAtIndex(0) @@ -552,6 +552,17 @@ class StdHashMapSyntheticProvider: if is_present: self.valid_indices.append(idx) + def table(self): + # type: () -> SBValue + if self.show_values: + hashbrown_hashmap = self.valobj.GetChildMemberWithName("base") + else: + # BACKCOMPAT: rust 1.47 + # HashSet wraps either std HashMap or hashbrown::HashSet, which both + # wrap hashbrown::HashMap, so either way we "unwrap" twice. + hashbrown_hashmap = self.valobj.GetChildAtIndex(0).GetChildAtIndex(0) + return hashbrown_hashmap.GetChildMemberWithName("table") + def has_children(self): # type: () -> bool return True |
