]> git.ipfire.org Git - thirdparty/make.git/commit
This is a major update, which switches virtually every allocated-but-not-freed
authorPaul Smith <psmith@gnu.org>
Tue, 20 Mar 2007 03:02:26 +0000 (03:02 +0000)
committerPaul Smith <psmith@gnu.org>
Tue, 20 Mar 2007 03:02:26 +0000 (03:02 +0000)
commit6ccf33cdbdfda2aea5d51e4d4991881c74d853d1
treece963770c6d0dc0428a6bce65d96da4b710e2831
parente4da30858037b431880263676e8f90b1f8412a38
This is a major update, which switches virtually every allocated-but-not-freed
string into the strcache.  As a side-effect, many more structure members and
function arguments can/should be declared const.

As mentioned in the changelog, unfortunately measurement shows that this
change does not yet reduce memory.  The problem is with secondary expansion:
because of this we store all the prerequisites in the string cache twice.
First we store the prerequisite string after initial expansion but before
secondary expansion, then we store each individual file after secondary
expansion and expand_deps().  I plan to change expand_deps() to be callable
in either context (eval or snap_deps) then have non-second-expansion
targets call expand_deps() during eval, so that we only need to store that
dependency list once.
27 files changed:
ChangeLog
ar.c
commands.c
default.c
dep.h
dir.c
expand.c
file.c
filedef.h
function.c
implicit.c
job.c
main.c
maintMakefile
make.h
misc.c
read.c
remake.c
rule.c
rule.h
strcache.c
tests/run_make_tests.pl
tests/scripts/features/patternrules
tests/test_driver.pl
variable.c
variable.h
vpath.c