void LocatedEntity::changeContainer(LocatedEntity * new_loc) { assert(m_location.m_loc != 0); assert(m_location.m_loc->m_contains != 0); m_location.m_loc->m_contains->erase(this); if (m_location.m_loc->m_contains->empty()) { m_location.m_loc->onUpdated(); } new_loc->makeContainer(); bool was_empty = new_loc->m_contains->empty(); new_loc->m_contains->insert(this); if (was_empty) { new_loc->onUpdated(); } assert(m_location.m_loc->checkRef() > 0); LocatedEntity* oldLoc = m_location.m_loc; m_location.m_loc = new_loc; m_location.m_loc->incRef(); assert(m_location.m_loc->checkRef() > 0); onContainered(oldLoc); oldLoc->decRef(); }
inline OpQueEntry::~OpQueEntry() { from->decRef(); }