Skip to content

Commit e2891f0

Browse files
committed
Store self.table instead of self.val
1 parent 0bf3c5f commit e2891f0

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

extra/boost_unordered_printers.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2024 Braden Ganetsky
1+
# Copyright 2024-2025 Braden Ganetsky
22
# Distributed under the Boost Software License, Version 1.0.
33
# https://www.boost.org/LICENSE_1_0.txt
44

@@ -45,22 +45,23 @@ def __init__(self, any_ptr):
4545

4646
class BoostUnorderedFcaPrinter:
4747
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]
5051
self.name = self.name.replace("boost::unordered::", "boost::")
5152
self.is_map = self.name.endswith("map")
52-
self.cpo = BoostUnorderedPointerCustomizationPoint(self.val["table_"]["buckets_"]["buckets"])
53+
self.cpo = BoostUnorderedPointerCustomizationPoint(self.table["buckets_"]["buckets"])
5354

5455
def to_string(self):
55-
size = self.val["table_"]["size_"]
56+
size = self.table["size_"]
5657
return f"{self.name} with {size} elements"
5758

5859
def display_hint(self):
5960
return "map"
6061

6162
def children(self):
6263
def generator():
63-
grouped_buckets = self.val["table_"]["buckets_"]
64+
grouped_buckets = self.table["buckets_"]
6465

6566
size = grouped_buckets["size_"]
6667
buckets = grouped_buckets["buckets"]
@@ -154,14 +155,15 @@ def build_string(idx):
154155

155156
class BoostUnorderedFoaPrinter:
156157
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]
159161
self.name = self.name.replace("boost::unordered::", "boost::")
160162
self.is_map = self.name.endswith("map")
161-
self.cpo = BoostUnorderedPointerCustomizationPoint(self.val["table_"]["arrays"]["groups_"])
163+
self.cpo = BoostUnorderedPointerCustomizationPoint(self.table["arrays"]["groups_"])
162164

163165
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"])
165167
return f"{self.name} with {size} elements"
166168

167169
def display_hint(self):
@@ -200,9 +202,8 @@ def is_sentinel(self, group, pos):
200202

201203
def children(self):
202204
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_"])
206207

207208
pc_ = groups.cast(gdb.lookup_type("unsigned char").pointer())
208209
p_ = elements

0 commit comments

Comments
 (0)