Home | History | Annotate | Download | only in sanitizer_common

Lines Matching refs:Node

24 template <class Node, int kReservedBits, int kTabSizeLog>
27 typedef typename Node::args_type args_type;
28 typedef typename Node::handle_type handle_type;
40 static Node *find(Node *s, args_type args, u32 hash);
41 static Node *lock(atomic_uintptr_t *p);
42 static void unlock(atomic_uintptr_t *p, Node *s);
52 atomic_uintptr_t tab[kTabSize]; // Hash table of Node's.
60 template <class Node, int kReservedBits, int kTabSizeLog>
61 Node *StackDepotBase<Node, kReservedBits, kTabSizeLog>::find(Node *s,
73 template <class Node, int kReservedBits, int kTabSizeLog>
74 Node *StackDepotBase<Node, kReservedBits, kTabSizeLog>::lock(
81 return (Node *)cmp;
89 template <class Node, int kReservedBits, int kTabSizeLog>
90 void StackDepotBase<Node, kReservedBits, kTabSizeLog>::unlock(
91 atomic_uintptr_t *p, Node *s) {
96 template <class Node, int kReservedBits, int kTabSizeLog>
97 typename StackDepotBase<Node, kReservedBits, kTabSizeLog>::handle_type
98 StackDepotBase<Node, kReservedBits, kTabSizeLog>::Put(args_type args,
101 if (!Node::is_valid(args)) return handle_type();
102 uptr h = Node::hash(args);
105 Node *s = (Node *)(v & ~1);
107 Node *node = find(s, args, h);
108 if (node) return node->get_handle();
110 Node *s2 = lock(p);
112 node = find(s2, args, h);
113 if (node) {
115 return node->get_handle();
125 uptr memsz = Node::storage_size(args);
126 s = (Node *)PersistentAlloc(memsz);
136 template <class Node, int kReservedBits, int kTabSizeLog>
137 typename StackDepotBase<Node, kReservedBits, kTabSizeLog>::args_type
138 StackDepotBase<Node, kReservedBits, kTabSizeLog>::Get(u32 id) {
150 Node *s = (Node *)(v & ~1);
160 template <class Node, int kReservedBits, int kTabSizeLog>
161 void StackDepotBase<Node, kReservedBits, kTabSizeLog>::LockAll() {
167 template <class Node, int kReservedBits, int kTabSizeLog>
168 void StackDepotBase<Node, kReservedBits, kTabSizeLog>::UnlockAll() {
172 unlock(p, (Node *)(s & ~1UL));