[gcc r16-9432] libstdc++: Fix parameter name in map/set printer num_children

Jonathan Wakely redi@gcc.gnu.org
Wed Jul 29 14:15:22 GMT 2026


https://gcc.gnu.org/g:e443da0a8019788dbc09ae3de0ab37ad2be0360f

commit r16-9432-ge443da0a8019788dbc09ae3de0ab37ad2be0360f
Author: David Faure <david.faure@kdab.com>
Date:   Mon Jul 27 19:13:43 2026 +0200

    libstdc++: Fix parameter name in map/set printer num_children
    
    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>
    (cherry picked from commit e21755893e22a9458f48b7f9b84a74de43039151)

Diff:
---
 libstdc++-v3/python/libstdcxx/v6/printers.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py
index be7e7a256065..eff4b72c1d8a 100644
--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
+++ b/libstdc++-v3/python/libstdcxx/v6/printers.py
@@ -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):


More information about the Libstdc++-cvs mailing list