From 66569ecbbb4c12c619a5a40da12a7a141a44b4d8 Mon Sep 17 00:00:00 2001 From: Dodji Seketeli Date: Thu, 13 Apr 2023 16:03:04 +0200 Subject: [PATCH] ir: Add new environment::get_type_id_from_type While debugging some issues, I felt the need to easily get the type-id from a given ir::type_base* from within the debugger. I have thus added this new environment::get_type_id_from_type member function. * include/abg-ir.h (environment::get_pointer_type_id_map): Declare ... * src/abg-ir.cc (environment::get_pointer_type_id_map): ... this new member function. Signed-off-by: Dodji Seketeli --- include/abg-ir.h | 3 +++ src/abg-ir.cc | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/abg-ir.h b/include/abg-ir.h index d25e3a8c..263bff5e 100644 --- a/include/abg-ir.h +++ b/include/abg-ir.h @@ -253,6 +253,9 @@ public: string get_type_id_from_pointer(uintptr_t ptr); + string + get_type_id_from_type(const type_base *ptr); + uintptr_t get_canonical_type_from_type_id(const char*); #endif diff --git a/src/abg-ir.cc b/src/abg-ir.cc index 64dfee79..4da8c461 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -3944,6 +3944,25 @@ environment::get_type_id_from_pointer(uintptr_t ptr) return ""; } +/// Getter of the type-id that corresponds to the value of an +/// abigail::ir::type_base that was created from the abixml reader. +/// +/// That value is retrieved from the map returned from +/// environment::get_pointer_type_id_map(). +/// +/// That map is populated at abixml reading time, (by build_type()) +/// when a given XML element representing a type is read into a +/// corresponding abigail::ir::type_base. +/// +/// This is used only for the purpose of debugging the +/// self-comparison process. That is, when invoking "abidw +/// --debug-abidiff". +/// +/// @return the type-id strings that corresponds +string +environment::get_type_id_from_type(const type_base *t) +{return get_type_id_from_pointer(reinterpret_cast(t));} + /// Getter of the canonical type of the artifact designated by a /// type-id. /// -- 2.34.1