49 #include <tr1/unordered_map>
84 : m_it(s_roots->insert(s_roots->end(), *source.m_it))
86 GCNode::incRefCount(*m_it);
91 const GCNode* node = *m_it;
92 GCNode::decRefCount(node);
98 const GCNode* newnode = *source.m_it;
99 GCNode::incRefCount(newnode);
100 const GCNode* oldnode = *m_it;
101 GCNode::decRefCount(oldnode);
114 GCNode::incRefCount(node);
115 const GCNode* oldnode = *m_it;
116 GCNode::decRefCount(oldnode);
131 typedef std::list<const GCNode*, Allocator<const GCNode*> > List;
132 static List* s_roots;
138 static void cleanup() {}
142 static void initialize();
171 template <
class T = RObject>
253 return static_cast<T*
>(
const_cast<GCNode*
>(
ptr()));
262 struct hash<CXXR::GCRoot<T> > {
265 std::tr1::hash<T*> make_hash;
266 return make_hash(gcrt);