StdMapPrinter.num_children and StdSetPrinter.num_children name their
parameter 'slf' but refer to 'self' in the body, so any call raises
"NameError: name 'self' is not defined".
GDB does not call num_children for a plain 'print', which is why this
went unnoticed, but printers that delegate to these ones do hit it.
For instance KDevelop's QMap pretty-printer forwards to StdMapPrinter,
and fails with the above error on every Qt 6 QMap since these methods
were added in commit
de124ffe1439.
libstdc++-v3/ChangeLog
* python/libstdcxx/v6/printers.py (StdMapPrinter.num_children):
Fix parameter name.
(StdSetPrinter.num_children): Likewise.
Signed-off-by: David Faure <david.faure@kdab.com>
Reviewed-by: Tom Tromey <tromey@adacore.com>
node = lookup_node_type('_Rb_tree_node', self._val.type).pointer()
return self._iter(RbtreeIterator(self._val), node)
- def num_children(slf):
+ def num_children(self):
return len(RbtreeIterator(self._val))
def display_hint(self):
node = lookup_node_type('_Rb_tree_node', self._val.type).pointer()
return self._iter(RbtreeIterator(self._val), node)
- def num_children(slf):
+ def num_children(self):
return len(RbtreeIterator(self._val))
class StdBitsetPrinter(printer_base):