+2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
+
+ * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
+ (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
+
2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
* hash-traits.h (ggc_hasher::remove): Take a reference parameter.
typedef Type *compare_type;
static inline hashval_t hash (const value_type &);
-
static inline bool equal (const value_type &existing,
const compare_type &candidate);
+ static inline void mark_deleted (Type *&);
+ static inline void mark_empty (Type *&);
+ static inline bool is_deleted (Type *);
+ static inline bool is_empty (Type *);
};
template <typename Type>
return existing == candidate;
}
+template <typename Type>
+inline void
+pointer_hash <Type>::mark_deleted (Type *&e)
+{
+ e = reinterpret_cast<Type *> (1);
+}
+
+template <typename Type>
+inline void
+pointer_hash <Type>::mark_empty (Type *&e)
+{
+ e = NULL;
+}
+
+template <typename Type>
+inline bool
+pointer_hash <Type>::is_deleted (Type *e)
+{
+ return e == reinterpret_cast<Type *> (1);
+}
+
+template <typename Type>
+inline bool
+pointer_hash <Type>::is_empty (Type *e)
+{
+ return e == NULL;
+}
+
/* Hasher for entry in gc memory. */
template<typename T>