--- a/src/ai/api/ai_list.cpp Thu Apr 12 12:11:46 2007 +0000
+++ b/src/ai/api/ai_list.cpp Thu Apr 12 12:19:13 2007 +0000
@@ -265,88 +265,104 @@
void AIList::RemoveAboveValue(int32 value)
{
- for (AIListMap::iterator iter = this->items.begin(); iter != this->items.end(); iter++) {
+ for (AIListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).second > value) this->items.erase(iter);
}
- for (AIListBucket::iterator iter = this->buckets.begin(); iter != this->buckets.end(); iter++) {
+ for (AIListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).first > value) this->buckets.erase(iter);
}
}
void AIList::RemoveBelowValue(int32 value)
{
- for (AIListMap::iterator iter = this->items.begin(); iter != this->items.end(); iter++) {
+ for (AIListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).second < value) this->items.erase(iter);
}
- for (AIListBucket::iterator iter = this->buckets.begin(); iter != this->buckets.end(); iter++) {
+ for (AIListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).first < value) this->buckets.erase(iter);
}
}
void AIList::RemoveBetweenValue(int32 start, int32 end)
{
- for (AIListMap::iterator iter = this->items.begin(); iter != this->items.end(); iter++) {
+ for (AIListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).second > start && (*iter).second < end) this->items.erase(iter);
}
- for (AIListBucket::iterator iter = this->buckets.begin(); iter != this->buckets.end(); iter++) {
+ for (AIListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).first > start && (*iter).first < end) this->buckets.erase(iter);
}
}
void AIList::RemoveValue(int32 value)
{
- for (AIListMap::iterator iter = this->items.begin(); iter != this->items.end(); iter++) {
+ for (AIListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).second == value) this->items.erase(iter);
}
- for (AIListBucket::iterator iter = this->buckets.begin(); iter != this->buckets.end(); iter++) {
+ for (AIListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).first == value) this->buckets.erase(iter);
}
}
void AIList::KeepAboveValue(int32 value)
{
- for (AIListMap::iterator iter = this->items.begin(); iter != this->items.end(); iter++) {
+ for (AIListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).second <= value) this->items.erase(iter);
}
- for (AIListBucket::iterator iter = this->buckets.begin(); iter != this->buckets.end(); iter++) {
+ for (AIListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).first <= value) this->buckets.erase(iter);
}
}
void AIList::KeepBelowValue(int32 value)
{
- for (AIListMap::iterator iter = this->items.begin(); iter != this->items.end(); iter++) {
+ for (AIListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).second >= value) this->items.erase(iter);
}
- for (AIListBucket::iterator iter = this->buckets.begin(); iter != this->buckets.end(); iter++) {
+ for (AIListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).first >= value) this->buckets.erase(iter);
}
}
void AIList::KeepBetweenValue(int32 start, int32 end)
{
- for (AIListMap::iterator iter = this->items.begin(); iter != this->items.end(); iter++) {
+ for (AIListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).second <= start || (*iter).second >= end) this->items.erase(iter);
}
- for (AIListBucket::iterator iter = this->buckets.begin(); iter != this->buckets.end(); iter++) {
+ for (AIListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).first <= start || (*iter).first >= end) this->buckets.erase(iter);
}
}
void AIList::KeepValue(int32 value)
{
- for (AIListMap::iterator iter = this->items.begin(); iter != this->items.end(); iter++) {
+ for (AIListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).second != value) this->items.erase(iter);
}
- for (AIListBucket::iterator iter = this->buckets.begin(); iter != this->buckets.end(); iter++) {
+ for (AIListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
+ next_iter = iter; next_iter++;
if ((*iter).first != value) this->buckets.erase(iter);
}
}