Remove unusual use of core_addr_eq and core_addr_hash
authorTom Tromey <tom@tromey.com>
Wed, 22 Dec 2021 17:30:16 +0000 (10:30 -0700)
committerTom Tromey <tom@tromey.com>
Wed, 29 Dec 2021 17:24:05 +0000 (10:24 -0700)
gdbtypes.h uses core_addr_eq and core_addr_hash in a weird way: taking
the address of a member and then passing this (as a void*) to these
functions.

It seems better to simply inline the ordinary code here.  CORE_ADDR is
a scalar so it can be directly compared, and the identity hash
function seems safe to assume as well.

After this, core_addr_eq and core_addr_hash are unused, so this patch
removes them.

gdb/gdbtypes.h
gdb/utils.c
gdb/utils.h

index 5284a4c3a030bd7b8d02132fdbfb753bc94bab73..35549a846209ad0dfa62b083b39d3a4fee3e41a7 100644 (file)
@@ -1910,13 +1910,13 @@ struct call_site
     static int
     eq (const call_site *a, const call_site *b)
     {
-      return core_addr_eq (&a->m_unrelocated_pc, &b->m_unrelocated_pc);
+      return a->m_unrelocated_pc == b->m_unrelocated_pc;
     }
 
     static hashval_t
     hash (const call_site *a)
     {
-      return core_addr_hash (&a->m_unrelocated_pc);
+      return a->m_unrelocated_pc;
     }
 
     static int
index 620ae9f3729e68e7f04e0c34c0e26e9383b15c72..eba1acbc8f6a5614442bd2652c43c958b60caebb 100644 (file)
@@ -2837,27 +2837,6 @@ print_core_address (struct gdbarch *gdbarch, CORE_ADDR address)
     return hex_string_custom (address, 16);
 }
 
-/* Callback hash_f for htab_create_alloc or htab_create_alloc_ex.  */
-
-hashval_t
-core_addr_hash (const void *ap)
-{
-  const CORE_ADDR *addrp = (const CORE_ADDR *) ap;
-
-  return *addrp;
-}
-
-/* Callback eq_f for htab_create_alloc or htab_create_alloc_ex.  */
-
-int
-core_addr_eq (const void *ap, const void *bp)
-{
-  const CORE_ADDR *addr_ap = (const CORE_ADDR *) ap;
-  const CORE_ADDR *addr_bp = (const CORE_ADDR *) bp;
-
-  return *addr_ap == *addr_bp;
-}
-
 /* Convert a string back into a CORE_ADDR.  */
 CORE_ADDR
 string_to_core_addr (const char *my_string)
index d86b5645c7b70abed89cc7be4bf36e3e824227ee..54cf090974a29fb7aca4427f83be8a7dc1a2fdaa 100644 (file)
@@ -541,10 +541,6 @@ extern const char *paddress (struct gdbarch *gdbarch, CORE_ADDR addr);
 extern const char *print_core_address (struct gdbarch *gdbarch,
                                       CORE_ADDR address);
 
-/* Callback hash_f and eq_f for htab_create_alloc or htab_create_alloc_ex.  */
-extern hashval_t core_addr_hash (const void *ap);
-extern int core_addr_eq (const void *ap, const void *bp);
-
 extern CORE_ADDR string_to_core_addr (const char *my_string);
 
 extern void fprintf_symbol_filtered (struct ui_file *, const char *,