diff --git a/apps/opencs/model/world/collection.hpp b/apps/opencs/model/world/collection.hpp index 25e350f3a3..859866058c 100644 --- a/apps/opencs/model/world/collection.hpp +++ b/apps/opencs/model/world/collection.hpp @@ -230,7 +230,8 @@ namespace CSMWorld for (int i=0; isetModified (buffer[newOrder[i]]->get()); + if (buffer[newOrder[i]]) + buffer[newOrder[i]]->setModified (buffer[newOrder[i]]->get()); } std::move (buffer.begin(), buffer.end(), mRecords.begin()+baseIndex); diff --git a/apps/opencs/model/world/infocollection.cpp b/apps/opencs/model/world/infocollection.cpp index ced7938fc2..8ff11009b1 100644 --- a/apps/opencs/model/world/infocollection.cpp +++ b/apps/opencs/model/world/infocollection.cpp @@ -58,7 +58,8 @@ namespace CSMWorld for (int i = 0; i < size; ++i) { buffer[newOrder[i]] = std::move(mRecords[baseIndex+i]); - buffer[newOrder[i]]->setModified(buffer[newOrder[i]]->get()); + if (buffer[newOrder[i]]) + buffer[newOrder[i]]->setModified(buffer[newOrder[i]]->get()); } std::move(buffer.begin(), buffer.end(), mRecords.begin()+baseIndex); @@ -319,7 +320,7 @@ void CSMWorld::InfoCollection::removeRows (int index, int count) ++it; } else - iter->second.erase(it); + it = iter->second.erase(it); } else ++it;