Assume that every page has been scanned by the time the scan phase ends

This doesn't prevent memory from being used to track what we have
and haven't scanned, but it does make it temporary. The existing
%rendered hash, which is filled afterwards, will be larger than %scanned
in practice anyway: %scanned will contain an entry for each page
that changed, plus an entry for each template used by templatebody,
whereas %rendered will contain an entry for each page that changed
plus an entry for each page rendered due to links or dependencies.
master
Simon McVittie 2014-03-05 10:42:00 +00:00
parent a9fc30b19c
commit c04a26f3e7
1 changed files with 4 additions and 1 deletions

View File

@ -154,7 +154,7 @@ sub genpage ($$) {
sub scan ($) {
my $file=shift;
return if $scanned{$file};
return if $phase > PHASE_SCAN || $scanned{$file};
$scanned{$file}=1;
debug(sprintf(gettext("scanning %s"), $file));
@ -883,6 +883,9 @@ sub refresh () {
# At this point it becomes OK to start matching pagespecs.
$phase = PHASE_RENDER;
# Save some memory: we no longer need to keep track of which pages
# we've scanned
%scanned = ();
remove_del(@$del, @$internal_del);