|
1 |
| -# Copyright 2024 Braden Ganetsky |
| 1 | +# Copyright 2024-2025 Braden Ganetsky |
2 | 2 | # Distributed under the Boost Software License, Version 1.0.
|
3 | 3 | # https://www.boost.org/LICENSE_1_0.txt
|
4 | 4 |
|
@@ -45,22 +45,23 @@ def __init__(self, any_ptr):
|
45 | 45 |
|
46 | 46 | class BoostUnorderedFcaPrinter:
|
47 | 47 | def __init__(self, val):
|
48 |
| - self.val = BoostUnorderedHelpers.maybe_unwrap_reference(val) |
49 |
| - self.name = f"{self.val.type.strip_typedefs()}".split("<")[0] |
| 48 | + val = BoostUnorderedHelpers.maybe_unwrap_reference(val) |
| 49 | + self.table = val["table_"] |
| 50 | + self.name = f"{val.type.strip_typedefs()}".split("<")[0] |
50 | 51 | self.name = self.name.replace("boost::unordered::", "boost::")
|
51 | 52 | self.is_map = self.name.endswith("map")
|
52 |
| - self.cpo = BoostUnorderedPointerCustomizationPoint(self.val["table_"]["buckets_"]["buckets"]) |
| 53 | + self.cpo = BoostUnorderedPointerCustomizationPoint(self.table["buckets_"]["buckets"]) |
53 | 54 |
|
54 | 55 | def to_string(self):
|
55 |
| - size = self.val["table_"]["size_"] |
| 56 | + size = self.table["size_"] |
56 | 57 | return f"{self.name} with {size} elements"
|
57 | 58 |
|
58 | 59 | def display_hint(self):
|
59 | 60 | return "map"
|
60 | 61 |
|
61 | 62 | def children(self):
|
62 | 63 | def generator():
|
63 |
| - grouped_buckets = self.val["table_"]["buckets_"] |
| 64 | + grouped_buckets = self.table["buckets_"] |
64 | 65 |
|
65 | 66 | size = grouped_buckets["size_"]
|
66 | 67 | buckets = grouped_buckets["buckets"]
|
@@ -154,14 +155,15 @@ def build_string(idx):
|
154 | 155 |
|
155 | 156 | class BoostUnorderedFoaPrinter:
|
156 | 157 | def __init__(self, val):
|
157 |
| - self.val = BoostUnorderedHelpers.maybe_unwrap_reference(val) |
158 |
| - self.name = f"{self.val.type.strip_typedefs()}".split("<")[0] |
| 158 | + val = BoostUnorderedHelpers.maybe_unwrap_reference(val) |
| 159 | + self.table = val["table_"] |
| 160 | + self.name = f"{val.type.strip_typedefs()}".split("<")[0] |
159 | 161 | self.name = self.name.replace("boost::unordered::", "boost::")
|
160 | 162 | self.is_map = self.name.endswith("map")
|
161 |
| - self.cpo = BoostUnorderedPointerCustomizationPoint(self.val["table_"]["arrays"]["groups_"]) |
| 163 | + self.cpo = BoostUnorderedPointerCustomizationPoint(self.table["arrays"]["groups_"]) |
162 | 164 |
|
163 | 165 | def to_string(self):
|
164 |
| - size = BoostUnorderedHelpers.maybe_unwrap_atomic(self.val["table_"]["size_ctrl"]["size"]) |
| 166 | + size = BoostUnorderedHelpers.maybe_unwrap_atomic(self.table["size_ctrl"]["size"]) |
165 | 167 | return f"{self.name} with {size} elements"
|
166 | 168 |
|
167 | 169 | def display_hint(self):
|
@@ -200,9 +202,8 @@ def is_sentinel(self, group, pos):
|
200 | 202 |
|
201 | 203 | def children(self):
|
202 | 204 | def generator():
|
203 |
| - table = self.val["table_"] |
204 |
| - groups = self.cpo.to_address(table["arrays"]["groups_"]) |
205 |
| - elements = self.cpo.to_address(table["arrays"]["elements_"]) |
| 205 | + groups = self.cpo.to_address(self.table["arrays"]["groups_"]) |
| 206 | + elements = self.cpo.to_address(self.table["arrays"]["elements_"]) |
206 | 207 |
|
207 | 208 | pc_ = groups.cast(gdb.lookup_type("unsigned char").pointer())
|
208 | 209 | p_ = elements
|
|
0 commit comments