tracker1 _m_left;
tracker2 _m_right;
- typedef std::tr1::unordered_map<
- dwarf::debug_info_entry::identity_type,
- std::pair<const die2 *,
- std::tr1::unordered_set<dwarf::debug_info_entry::identity_type>
- >
- > equiv_map;
+ struct ref_hasher : public std::unary_function<die2, size_t>
+ {
+ inline size_t operator () (const die2 &i) const
+ {
+ return i->identity ();
+ }
+ };
+
+ struct same_ref : public std::equal_to<die2>
+ {
+ inline bool operator () (const die2 &a, const die2 &b) const
+ {
+ return a->identity () == b->identity ();
+ }
+ };
+
+ typedef std::pair<const die2 *,
+ std::tr1::unordered_set<die2, ref_hasher, same_ref>
+ > equiv_list;
- typedef std::tr1::unordered_map< ::Dwarf_Off, equiv_list> equiv_map;
++ typedef std::tr1::unordered_map<dwarf::debug_info_entry::identity_type,
++ equiv_list> equiv_map;
equiv_map *_m_equiv;
bool _m_delete_equiv;