mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-07-07 20:06:36 +02:00
Bug Fix - std::vector::erase
- Fixed bug whereby code called std::vector::erase, but then continued as though the iterator was still good.
This commit is contained in:
parent
108b486ac1
commit
858f34cf95
2 changed files with 11 additions and 4 deletions
|
@ -290,6 +290,7 @@ void Context::loadCorrectConfigFile ()
|
||||||
|
|
||||||
// No need to handle it again.
|
// No need to handle it again.
|
||||||
args.erase (arg);
|
args.erase (arg);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -305,6 +306,7 @@ void Context::loadCorrectConfigFile ()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply overrides of type: "rc.name:value"
|
// Apply overrides of type: "rc.name:value"
|
||||||
|
std::vector <std::string> filtered;
|
||||||
foreach (arg, args)
|
foreach (arg, args)
|
||||||
{
|
{
|
||||||
if (arg->substr (0, 3) == "rc.")
|
if (arg->substr (0, 3) == "rc.")
|
||||||
|
@ -322,11 +324,12 @@ void Context::loadCorrectConfigFile ()
|
||||||
message (std::string ("Configuration override ") + // TODO i18n
|
message (std::string ("Configuration override ") + // TODO i18n
|
||||||
arg->substr (3, std::string::npos));
|
arg->substr (3, std::string::npos));
|
||||||
}
|
}
|
||||||
|
|
||||||
// No need to handle it again.
|
|
||||||
args.erase (arg);
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
filtered.push_back (*arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
args = filtered;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -353,6 +353,7 @@ int TDB::gc ()
|
||||||
|
|
||||||
// Now move completed and deleted tasks from the pending list to the
|
// Now move completed and deleted tasks from the pending list to the
|
||||||
// completed list. Isn't garbage collection easy?
|
// completed list. Isn't garbage collection easy?
|
||||||
|
std::vector <Task> still_pending;
|
||||||
foreach (task, pending)
|
foreach (task, pending)
|
||||||
{
|
{
|
||||||
std::string st = task->get ("status");
|
std::string st = task->get ("status");
|
||||||
|
@ -361,11 +362,14 @@ int TDB::gc ()
|
||||||
s == Task::deleted)
|
s == Task::deleted)
|
||||||
{
|
{
|
||||||
completed.push_back (*task);
|
completed.push_back (*task);
|
||||||
pending.erase (task);
|
|
||||||
++count;
|
++count;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
still_pending.push_back (*task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pending = still_pending;
|
||||||
|
|
||||||
// No commit - all updates performed manually.
|
// No commit - all updates performed manually.
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue