| 151 | } |
| 152 | |
| 153 | void IdfFile::insertObjectByIddObjectType(const IdfObject& object) { |
| 154 | for (auto it = m_objects.begin(), itEnd = m_objects.end(); it != itEnd; ++it) { |
| 155 | if (it == itEnd || object.iddObject().type() < it->iddObject().type()) { |
| 156 | // insert object immediately before it |
| 157 | it = m_objects.insert(it, object); |
| 158 | if (object.iddObject().isVersionObject() |
| 159 | || ((object.iddObject().type() == IddObjectType::Catchall) && (object.numFields() > 0u) |
| 160 | && (boost::regex_match(object.getString(0).get(), iddRegex::versionObjectName())))) { |
| 161 | unsigned index = unsigned(it - m_objects.begin()); |
| 162 | m_versionObjectIndices.insert(index); |
| 163 | OS_ASSERT(m_objects[index] == object); |
| 164 | } |
| 165 | return; |
| 166 | } |
| 167 | } |
| 168 | } |
| 169 | |
| 170 | bool IdfFile::removeObject(const IdfObject& object) { |
| 171 | auto it = |