libabigail/include
Dodji Seketeli 34b94a06da Get out as early as possible when comparing different ABI artefacts
When the the of 'equals' overloaded functions was introduced, it was
to get the possibility to have a hint about the kind of difference
(local or sub-type difference) there was between two different ABI
artifacts.  To do that, it was quite common to keep on comparing the
two artifacts even when we knew there were different, because we need
to know all the kinds of the differences there are.

Now, profiling shows that doing this generally is too costly.  So,
this patch adds a way to doing it only when necessary.

	* include/abg-ir.h (equal): Turn the last parameter of type
	change_kind& into a change_kind*.  Do this on all the overloads'
	declarations.
	* src/abg-ir.cc (equal): Do the same for the definitions of the
	overloads and adapt them to report about the kind of changes makes
	the two ABI artifact different -- only if the change_kind pointer
	is non-null.  That way, callers have a way to choose if they want
	to go the expensive route of knowing what kind of changes there
	are.
	({decl_base, scope_decl, type_base, scope_type_decl,
	qualified_type_def, pointer_type_def, pointer_type_def,
	reference_type_def, array_type_def, enum_type_decl, typedef_decl,
	var_decl, function_type, function_decl, function_decl::parameter,
	class_decl::base_spec, class_decl}::operator==): Adjust to the new
	signature of equals; call it with the change_kind* parameter set
	to NULL.
	* src/abg-comparison.cc ({var_diff, pointer_diff, array_diff,
	reference_diff, qualified_type_diff, enum_diff, class_diff,
	base_diff, scope_diff, fn_parm_diff, function_decl_diff,
	type_decl_diff, typedef_diff}::has_local_changes): Adjust.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2015-02-07 11:00:05 +01:00
..
abg-comp-filter.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-comparison.h Rename diff::length() into diff::has_changes() 2015-02-05 12:44:59 +01:00
abg-config.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-corpus.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-diff-utils.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-dwarf-reader.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-fwd.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-hash.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-ini.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-ir.h Get out as early as possible when comparing different ABI artefacts 2015-02-07 11:00:05 +01:00
abg-libxml-utils.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-libzip-utils.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-reader.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-sptr-utils.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-tools-utils.h Expose a new libabigail::tools_utils namespace 2015-01-08 12:28:14 +01:00
abg-traverse.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-version.h.in Collapse subdir of include to include. 2013-08-14 15:07:18 +02:00
abg-viz-common.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-viz-dot.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-viz-svg.h Update copyright years 2015-01-07 17:52:10 +01:00
abg-writer.h Update copyright years 2015-01-07 17:52:10 +01:00
Makefile.am Expose a new libabigail::tools_utils namespace 2015-01-08 12:28:14 +01:00