libnm-glib-aux: add nm_puint64_hash()/nm_puint64_equal()
The two new functions can be used as GHashFunc and GEqualFunc when creating hash tables whose keys are pointers to a guint64.
This commit is contained in:
@@ -190,6 +190,27 @@ nm_pint_equal(gconstpointer a, gconstpointer b)
|
||||
return s1 == s2 || (s1 && s2 && *s1 == *s2);
|
||||
}
|
||||
|
||||
/* GHashFunc for GHashTable keys that are a pointer to a guint64 */
|
||||
guint
|
||||
nm_puint64_hash(gconstpointer p)
|
||||
{
|
||||
const guint64 *s = p;
|
||||
|
||||
if (!s)
|
||||
return nm_hash_static(298377461u);
|
||||
return nm_hash_val(1208815757u, *s);
|
||||
}
|
||||
|
||||
/* GEqualFunc for GHashTable keys that are a pointer to a guint64 */
|
||||
gboolean
|
||||
nm_puint64_equal(gconstpointer a, gconstpointer b)
|
||||
{
|
||||
const guint64 *s1 = a;
|
||||
const guint64 *s2 = a;
|
||||
|
||||
return s1 == s2 || (s1 && s2 && *s1 == *s2);
|
||||
}
|
||||
|
||||
guint
|
||||
nm_pdirect_hash(gconstpointer p)
|
||||
{
|
||||
|
@@ -266,6 +266,9 @@ gboolean nm_pstr_equal(gconstpointer a, gconstpointer b);
|
||||
guint nm_pint_hash(gconstpointer p);
|
||||
gboolean nm_pint_equal(gconstpointer a, gconstpointer b);
|
||||
|
||||
guint nm_puint64_hash(gconstpointer p);
|
||||
gboolean nm_puint64_equal(gconstpointer a, gconstpointer b);
|
||||
|
||||
G_STATIC_ASSERT(sizeof(int) == sizeof(guint32));
|
||||
#define nm_puint32_hash nm_pint_hash
|
||||
#define nm_puint32_equal nm_pint_equal
|
||||
|
Reference in New Issue
Block a user