Boost logo

Boost Users :

From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2007-05-31 09:02:25


Filip Konvi?ka ha escrito:

[...]

> > I guess it'd help a lot to see how the built-in visualizers for std::map and
> > stdext::hash_map are doing.
>
> The visualizer offers tree traversal:
> #tree(head:? size:? left:? right:? skip:?)
>
> I tried and succeeded partially, with

[...]

> Out of 3 items, I can see the leaf nodes (left_ and right_) correctly,
> but the head node is displayed incorrectly. When I add some more items,
> I still see just 2 or 3 items and the rest is garbage. Perhaps there is
> something about _compressed_base which needs special treatment?

Yes, this is related to a special memory-saving technique described at:

http://boost.org/libs/multi_index/doc/tutorial/indices.html#ordered_node_compression

I cannot check, but I think the correct expression for head should be:

*((ordered_index_node_impl*)(
  ((ordered_index_node_impl*)(ordered_index_node_trampoline<$T1>*)($c.member)
  )->parentcolor_&~1u))

Does this work? If so, we can move on to the rest of node types :)

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net