144 private: |
144 private: |
145 static traceid _field_id_counter; |
145 static traceid _field_id_counter; |
146 FieldInfoTable* _table; |
146 FieldInfoTable* _table; |
147 const ObjectSampleFieldInfo* _lookup; |
147 const ObjectSampleFieldInfo* _lookup; |
148 |
148 |
149 void link(FieldInfoEntry* entry) { |
149 void on_link(FieldInfoEntry* entry) { |
150 assert(entry != NULL, "invariant"); |
150 assert(entry != NULL, "invariant"); |
151 entry->set_id(++_field_id_counter); |
151 entry->set_id(++_field_id_counter); |
152 } |
152 } |
153 |
153 |
154 bool equals(uintptr_t hash, const FieldInfoEntry* entry) { |
154 bool on_equals(uintptr_t hash, const FieldInfoEntry* entry) { |
155 assert(hash == entry->hash(), "invariant"); |
155 assert(hash == entry->hash(), "invariant"); |
156 assert(_lookup != NULL, "invariant"); |
156 assert(_lookup != NULL, "invariant"); |
157 return entry->literal()->_field_modifiers == _lookup->_field_modifiers; |
157 return entry->literal()->_field_modifiers == _lookup->_field_modifiers; |
158 } |
158 } |
159 |
159 |
160 void unlink(FieldInfoEntry* entry) { |
160 void on_unlink(FieldInfoEntry* entry) { |
161 assert(entry != NULL, "invariant"); |
161 assert(entry != NULL, "invariant"); |
162 // nothing |
162 // nothing |
163 } |
163 } |
164 |
164 |
165 public: |
165 public: |