diff options
author | Dan Nicholson <dbn.lists@gmail.com> | 2013-01-16 16:42:48 -0800 |
---|---|---|
committer | Dan Nicholson <dbn.lists@gmail.com> | 2013-01-16 16:42:48 -0800 |
commit | ae2fef2c05bd7e875b4a84e584a183b027f53356 (patch) | |
tree | ac9103061515fa1f67d89e000bad89df34bf738c /pkg.h | |
parent | 4dac402b18f00cb9bf74b21631a073ae7acb04fc (diff) | |
download | pkg-config-ae2fef2c05bd7e875b4a84e584a183b027f53356.tar.gz |
Greatly simplify circular Requires checking
Instead of keeping of list of packages in the current Requires chain and
searching it repeatedly, just mark each package as part of the chain or
not. This nearly cuts in half the time on a particularly rough torture
test I have.
Diffstat (limited to 'pkg.h')
-rw-r--r-- | pkg.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -80,6 +80,7 @@ struct _Package int path_position; /* used to order packages by position in path of their .pc file, lower number means earlier in path */ int libs_num; /* Number of times the "Libs" header has been seen */ int libs_private_num; /* Number of times the "Libs.private" header has been seen */ + gboolean in_requires_chain; /* package is in current Requires chain */ }; Package *get_package (const char *name); |