The Git repository of the Libabigail Project
Go to file
Dodji Seketeli 591a0f9e3e comparison: Factorize the code that inserts diff nodes to the graph
During the traversal of the graph of diff nodes, diff::traverse does
two things:

    1/ If the generic view of the diff node of is not yet connected to
    the diff graph, then connect it.  Note that the typed view of the
    diff node is always connected to the diff graph.

    2/ Visit the diff node using its generic view and visit its
    children nodes.

Looking at the part 1/, I realized that the code connecting the
generic view of the diff node to the diff graph was duplicated in
every single type of diff node.

This patch put that code into diff::finish_diff_type and makes all the
different kinds diff node use that (virtual) member function,
effectively factorizing that code.

	* include/abg-comparison.h ({distinct, var, pointer, reference,
	array, qualified_type, enum, class_or_union, class, union, base,
	scope, fn_parm, function_type, function_decl, type_decl,
	typedef}_diff::finish_diff_type): Remove these declarations.
	* src/abg-comparison.cc ({distinct, var, pointer, reference,
	array, qualified_type, enum, class_or_union, class, union, base,
	scope, fn_parm, function_type, function_decl, type_decl,
	typedef}_diff::finish_diff_type): Remove these definitions.
	(diff::finish_diff_type): Add the code to connect the children
	nodes to the current node, making the generic view of the diff
	node usable to walk the graph.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2022-03-07 18:12:10 +01:00
autoconf-archive Replace individual license references with SPDX Identifiers 2020-12-02 11:44:13 +01:00
bash-completion Re-license the project to Apache v2 With LLVM Exception 2020-12-02 11:49:13 +01:00
doc Bug 28663 - generate man page for kmidiff 2022-01-19 12:29:12 +01:00
include comparison: Factorize the code that inserts diff nodes to the graph 2022-03-07 18:12:10 +01:00
m4 Delete ltsugar.m4 and pkg.m4 files from m4/ 2015-01-06 09:54:45 +01:00
relicensing-scripts Bug 27512 - Remove broken zip-archive support 2021-03-19 10:52:57 +01:00
scripts Re-license the project to Apache v2 With LLVM Exception 2020-12-02 11:49:13 +01:00
src comparison: Factorize the code that inserts diff nodes to the graph 2022-03-07 18:12:10 +01:00
tests Bug 28013 - Acknowledge variadic parameter type is not canonicalized 2022-03-07 09:59:15 +01:00
tools abilint --show-type-use: Show results for global decls that have no symbols 2022-02-28 17:30:04 +01:00
.clang-format Tweak clang-format configuration 2021-10-19 12:59:18 +02:00
.gitignore .gitignore: Add libabigail-?.* *.orig files 2019-05-22 14:34:23 +02:00
.mailmap Add '.mailmap' 2021-12-17 20:12:20 +01:00
abigail.m4 Re-license the project to Apache v2 With LLVM Exception 2020-12-02 11:49:13 +01:00
ABIXML-FORMAT-VERSIONS Bug 28450 - Fix cloned member function handling in DWARF 2021-11-12 18:31:28 +01:00
AUTHORS
ChangeLog Update ChangeLog for 2.0 2021-10-04 10:58:23 +02:00
COMMIT-LOG-GUIDELINES Update the COMMIT-LOG-GUIDELINES file 2016-05-22 23:20:12 +02:00
COMPILING Improve some grammar 2022-02-25 11:24:20 +01:00
configure.ac abilint: add the --show-type-use option 2022-02-28 10:24:46 +01:00
CONTRIBUTING Improve some grammar 2022-02-25 11:24:20 +01:00
default.abignore Re-license the project to Apache v2 With LLVM Exception 2020-12-02 11:49:13 +01:00
gen-changelog.py Replace individual license references with SPDX Identifiers 2020-12-02 11:44:13 +01:00
install-sh Replace individual license references with SPDX Identifiers 2020-12-02 11:44:13 +01:00
libabigail.pc.in Make libxml2 a private dependency wrt pkconfig 2013-08-22 17:41:29 +02:00
license-change-2020.txt Add a license-change-2020.txt file 2020-12-02 11:50:22 +01:00
LICENSE.txt Add the LICENSE.txt file 2020-12-02 11:49:33 +01:00
ltmain.sh Replace individual license references with SPDX Identifiers 2020-12-02 11:44:13 +01:00
Makefile.am Fix tarball upload directory 2021-10-04 16:06:43 +02:00
NEWS Update NEWS file for 2.0 2021-10-04 10:57:24 +02:00
README Improve some grammar 2022-02-25 11:24:20 +01:00
release-text-template.txt Update the release text template after 1.0 2017-11-22 15:55:43 +01:00
update-copyright.sh Re-license the project to Apache v2 With LLVM Exception 2020-12-02 11:49:13 +01:00
VISIBILITY Improve some grammar 2022-02-25 11:24:20 +01:00

This is the Application Binary Interface Generic Analysis and
Instrumentation Library.

It aims at constructing, manipulating, serializing and de-serializing
ABI-relevant artifacts.

The set of artifacts that we are intersted is made of quantities like
types, variable, functions and declarations of a given library or
program.  For a given library or program this set of quantities is
called an ABI corpus.

This library aims at (among other things) providing a way to compare
two ABI Corpora (apparently the plural of corpus is copora, heh,
that's cool), provide detailed information about their differences,
and help build tools to infer interesting conclusions about these
differences.

You are welcome to contribute to this project after reading the files
CONTRIBUTING and COMMIT-LOG-GUIDELINES files in the source tree.

Communicating with the maintainers of this project -- including
sending patches to be include to the source code -- happens via email
at libabigail@sourceware.org.