diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 9b3187d0e021aa576b64cffbf817b5ab51a51a3e..cc3e87e5eb90753b939f4e0efbff4ac3e6538302 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2012-11-02 Jonathan Wakely <jwakely.gcc@gmail.com> + + * python/libstdcxx/v6/printers.py (Tr1HashtableIterator): Update. + (StdForwardListPrinter): Likewise. + 2012-11-02 Jonathan Wakely <jwakely.gcc@gmail.com> * include/bits/forward_list.h (forward_list(size_type)): Add missing diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py index 07a5ee62f355f43bc41c24e9b3250122d0dc9888..5197284b0177ced05bbf381561b49e3d9fcb4733 100644 --- a/libstdc++-v3/python/libstdcxx/v6/printers.py +++ b/libstdc++-v3/python/libstdcxx/v6/printers.py @@ -612,7 +612,7 @@ class StdStringPrinter: class Tr1HashtableIterator: def __init__ (self, hash): - self.node = hash['_M_before_begin']['_M_nxt'] + self.node = hash['_M_bbegin']['_M_node']['_M_nxt'] self.node_type = find_type(hash.type, '__node_type').pointer() def __iter__ (self): @@ -707,7 +707,9 @@ class StdForwardListPrinter: self.base = elt['_M_next'] count = self.count self.count = self.count + 1 - return ('[%d]' % count, elt['_M_value']) + valptr = elt['_M_storage'].address + valptr = valptr.cast(elt.type.template_argument(0).pointer()) + return ('[%d]' % count, valptr.dereference()) def __init__(self, typename, val): self.val = val