| 284 | } |
| 285 | |
| 286 | WorkspaceObjectVector WorkspaceObject_Impl::getSources(IddObjectType type) const { |
| 287 | WorkspaceObjectVector result; |
| 288 | if (!initialized()) { |
| 289 | return result; |
| 290 | } |
| 291 | if (m_targetData) { |
| 292 | for (const ReversePointer& ptr : m_targetData->reversePointers) { |
| 293 | OS_ASSERT(!ptr.sourceHandle.isNull()); |
| 294 | OptionalWorkspaceObject owo = this->workspace().getObject(ptr.sourceHandle); |
| 295 | OS_ASSERT(owo); |
| 296 | if (owo->iddObject().type() == type) { |
| 297 | result.push_back(*owo); |
| 298 | } |
| 299 | } |
| 300 | std::sort(result.begin(), result.end()); |
| 301 | result.erase(std::unique(result.begin(), result.end()), result.end()); |
| 302 | } |
| 303 | return result; |
| 304 | } |
| 305 | |
| 306 | ReversePointerSet WorkspaceObject_Impl::getReversePointers() const { |
| 307 | ReversePointerSet result; |