]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Fix parameter name in map/set printer num_children
authorDavid Faure <david.faure@kdab.com>
Mon, 27 Jul 2026 17:13:43 +0000 (19:13 +0200)
committerJonathan Wakely <redi@gcc.gnu.org>
Tue, 28 Jul 2026 10:00:45 +0000 (11:00 +0100)
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>
libstdc++-v3/python/libstdcxx/v6/printers.py

index be7e7a256065ed4793c3b1b7fc8dddfe07960406..eff4b72c1d8a12dbd9c3cb08820459facd452e92 100644 (file)
@@ -908,7 +908,7 @@ class StdMapPrinter(printer_base):
         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):
@@ -950,7 +950,7 @@ class StdSetPrinter(printer_base):
         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):