Context: GC now only called when the commands request it

This commit is contained in:
Paul Beckingham 2015-08-02 15:54:24 -04:00
parent 0c85725a4c
commit a604e14ea9
2 changed files with 3 additions and 7 deletions

View file

@ -432,9 +432,9 @@ int Context::dispatch (std::string &out)
Command* c = commands[command];
assert (c);
// GC is invoked prior to running any command that displays task IDs, if
// possible.
if (c->displays_id () && !tdb2.read_only ())
// The command know whether they need a GC.
if (c->needs_gc () &&
! tdb2.read_only ())
{
run_gc = config.getBoolean ("gc");
tdb2.gc ();

View file

@ -59,9 +59,6 @@ int CmdProjects::execute (std::string& output)
{
int rc = 0;
// Enforce the garbage collector to show correct task counts
context.tdb2.gc ();
// Get all the tasks.
handleRecurrence ();
auto tasks = context.tdb2.pending.get_tasks ();
@ -74,7 +71,6 @@ int CmdProjects::execute (std::string& output)
Filter filter;
std::vector <Task> filtered;
filter.subset (tasks, filtered);
int quantity = filtered.size ();
std::stringstream out;