コード例 #1
0
ファイル: uiwidget.cpp プロジェクト: Pucker/otclient
void UIWidget::destroy()
{
    if(m_destroyed)
        g_logger.warning(stdext::format("attempt to destroy widget '%s' two times", m_id));

    // hold itself reference
    UIWidgetPtr self = static_self_cast<UIWidget>();
    m_destroyed = true;

    // remove itself from parent
    if(UIWidgetPtr parent = getParent())
        parent->removeChild(self);
    internalDestroy();
}
コード例 #2
0
ファイル: uiwidget.cpp プロジェクト: Cayan/otclient
void UIWidget::destroy()
{
    if(m_destroyed)
        logWarning("attempt to destroy widget '", m_id, "' two times");

    // hold itself reference
    UIWidgetPtr self = asUIWidget();
    m_destroyed = true;

    // remove itself from parent
    if(UIWidgetPtr parent = getParent())
        parent->removeChild(self);
    internalDestroy();
}
コード例 #3
0
void ServerContextImpl::destroy()
{
    Lock guard(_mutex);
    if (_state == DESTROYED)
    {
        // silent return
        return;
        // exception is not OK, since we use
        // shared_pointer-s auto-cleanup/destruction
        // THROW_BASE_EXCEPTION("Context already destroyed.");
    }

    // shutdown if not already
    shutdown();

    // go into destroyed state ASAP
    _state = DESTROYED;

    internalDestroy();
}