Optimize hashtable allocator
Jonathan Wakely
jwakely.gcc@gmail.com
Fri Nov 2 01:48:00 GMT 2012
This fixes the hashtable and forward_list printers.
Tested x86_64-linux, committed to trunk.
-------------- next part --------------
commit 2f8ec0a8fa9dfca88259fb3a3273884939868bae
Author: Jonathan Wakely <jwakely.gcc@gmail.com>
Date: Fri Nov 2 01:41:37 2012 +0000
* python/libstdcxx/v6/printers.py (Tr1HashtableIterator): Update.
(StdForwardListPrinter): Likewise.
diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py
index 07a5ee6..5197284 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
More information about the Libstdc++
mailing list