mirror of git://gcc.gnu.org/git/gcc.git
gcc/
* hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty) (pointer_hash::is_deleted, pointer_hash::is_empty): New functions. From-SVN: r224956
This commit is contained in:
parent
5ac6389bc1
commit
843adf8844
|
|
@ -1,3 +1,8 @@
|
||||||
|
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>
|
2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
|
||||||
|
|
||||||
* hash-traits.h (ggc_hasher::remove): Take a reference parameter.
|
* hash-traits.h (ggc_hasher::remove): Take a reference parameter.
|
||||||
|
|
|
||||||
|
|
@ -66,9 +66,12 @@ struct pointer_hash : typed_noop_remove <Type>
|
||||||
typedef Type *compare_type;
|
typedef Type *compare_type;
|
||||||
|
|
||||||
static inline hashval_t hash (const value_type &);
|
static inline hashval_t hash (const value_type &);
|
||||||
|
|
||||||
static inline bool equal (const value_type &existing,
|
static inline bool equal (const value_type &existing,
|
||||||
const compare_type &candidate);
|
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>
|
template <typename Type>
|
||||||
|
|
@ -88,6 +91,34 @@ pointer_hash <Type>::equal (const value_type &existing,
|
||||||
return existing == candidate;
|
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. */
|
/* Hasher for entry in gc memory. */
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue