[gcc r16-9432] libstdc++: Fix parameter name in map/set printer num_children
Jonathan Wakely via Gcc-cvs <[email protected]> Wed, 29 Jul 2026 14:15:22 +0000 (GMT)
| Newsgroups | gmane.comp.gcc.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://gcc.gnu.org/g:e443da0a8019788dbc09ae3de0ab37ad2be0360f commit r16-9432-ge443da0a8019788dbc09ae3de0ab37ad2be0360f Author: David Faure <[email protected]> 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 <[email protected]> Reviewed-by: Tom Tromey <[email protected]> (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):