libabigail/include
Dodji Seketeli 5f97fc781c Implement hash caching
* include/abg-ir.h (decl_base::hash_): New member.
	(decl_base::{g,s}et_hash): New accessors.
	(type_base_::cached_hash): Forward-declare new hasher.
	(struct type_ptr_equal): New equality predicate.
	(type_shared_ptr_equal::operator()): Do not forget to test pointer
	equality.
	(type_base::cached_hash): Declare new hasher.
	* src/abg-hash.cc ({decl_base, type_decl, scope_type_decl,
	qualified_type_def, pointer_type_def, reference_type_def,
	enum_type_decl, typedef_decl, var_decl, function_decl,
	function_decl::parameter, class_decl::data_member,
	class_decl::member_function, class_decl, }:#️⃣:operator()):
	Implement caching.
	(type_base::cached_hash::operator()(const type_base*)): Define.
	(type_base::cached_hash::operator() (const type_base_sptr):
	Define.
	* src/abg-ir.cc (type_ptr_map): Make this map use
	type_base::cached_hash instead of type_base::ptr_hash now.
	(decl_base::decl_base): Initialize the new
	decl_base::hash_. member.
	(decl_base::{s,g}et_hash): Define.
	(decl_base::operator==(const decl_base& other)): Take the hash in
	account to speed up inequality detection.
	* src/abg-writer.cc (type_ptr_map): Renamed type_shared_ptr_map
	into this.  Make it use type_base::cached_hash and type_ptr_equal
	instead of type_base::shared_ptr_hash and type_shared_ptr_equal.
	(get_id_for_type): Add overload for type_base*.  Re-write the
	previous overload in terms of this one.
	(write_context::m_type_id_map): Use type_ptr_map as the type for
	this.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2014-01-13 17:36:19 +01:00
..
abg-comparison.h Add support for global variables in corpus diffing 2014-01-06 16:01:55 +01:00
abg-config.h Doxygen markup fixes final. 2013-08-14 15:07:18 +02:00
abg-corpus.h Initial support for diffing ABI corpus files 2013-12-23 14:05:19 +01:00
abg-diff-utils.h Initial support for diffing ABI corpus files 2013-12-23 14:05:19 +01:00
abg-dwarf-reader.h Initial support of reading an ABI Corpus from DWARF 2013-12-07 08:07:54 +01:00
abg-fwd.h Fix class scope setting & member type de-serializing from dwarf 2014-01-13 17:36:19 +01:00
abg-hash.h Nest hashers. 2013-08-14 15:07:19 +02:00
abg-ir.h Implement hash caching 2014-01-13 17:36:19 +01:00
abg-libxml-utils.h Make bilint read input from stdin 2013-12-11 15:20:42 +01:00
abg-libzip-utils.h Initial writing/reading of an ABI corpus to an archive 2013-08-27 16:20:41 +02:00
abg-reader.h Support new 'abi-corpus' native XML format (.abi) 2014-01-07 14:12:26 +01:00
abg-traverse.h Prepare node visitors to be usable on things other than IR nodes 2013-11-19 11:19:12 +01:00
abg-version.h.in Collapse subdir of include to include. 2013-08-14 15:07:18 +02:00
abg-viz-common.h Forward decls for abg-ir.h, doxygen fixups, restyle. 2013-08-14 15:07:18 +02:00
abg-viz-dot.h Forward decls for abg-ir.h, doxygen fixups, restyle. 2013-08-14 15:07:18 +02:00
abg-viz-svg.h Forward decls for abg-ir.h, doxygen fixups, restyle. 2013-08-14 15:07:18 +02:00
abg-writer.h Support new 'abi-corpus' native XML format (.abi) 2014-01-07 14:12:26 +01:00
Makefile.am Initial support of reading an ABI Corpus from DWARF 2013-12-07 08:07:54 +01:00