5 CLASS = cliffc_hashtable;
8 spec_hashtable<TypeK, TypeV*> map;
9 spec_hashtable<TypeK, Tag> id_map;
12 map = spec_hashtable<TypeK, TypeV*>();
13 id_map = spec_hashtable<TypeK, TypeV*>();
16 static bool equals_val(TypeV *ptr1, TypeV *ptr2) {
20 # Update the tag for the current key slot if the corresponding tag
21 # is NULL, otherwise just return that tag. It will update the next
22 # available tag too if it requires a new tag for that key slot.
23 static Tag getKeyTag(TypeK &key) {
24 if (id_map.get(key) == NULL) {
25 Tag cur_tag = tag.current();
26 id_map.put(key, cur_tag);
30 return id_map.get(key);
46 PutIfAbsent(COND_PutIfAbsentSucc),
48 RemoveIfMatch(COND_RemoveIfMatchSucc),
50 ReplaceIfMatch(COND_ReplaceIfMatchSucc)
53 Write_interface -> Read_interface