| 266 | } |
| 267 | |
| 268 | WorkspaceObjectVector WorkspaceObject_Impl::sources() const { |
| 269 | WorkspaceObjectVector result; |
| 270 | if (!initialized()) { |
| 271 | return result; |
| 272 | } |
| 273 | if (m_targetData) { |
| 274 | for (const ReversePointer& ptr : m_targetData->reversePointers) { |
| 275 | OS_ASSERT(!ptr.sourceHandle.isNull()); |
| 276 | OptionalWorkspaceObject owo = this->workspace().getObject(ptr.sourceHandle); |
| 277 | OS_ASSERT(owo); |
| 278 | result.push_back(*owo); |
| 279 | } |
| 280 | std::sort(result.begin(), result.end()); |
| 281 | result.erase(std::unique(result.begin(), result.end()), result.end()); |
| 282 | } |
| 283 | return result; |
| 284 | } |
| 285 | |
| 286 | WorkspaceObjectVector WorkspaceObject_Impl::getSources(IddObjectType type) const { |
| 287 | WorkspaceObjectVector result; |