コード例 #1
0
ファイル: TriggerExecutor.cs プロジェクト: shineTeam7/home3
    public void dispose()
    {
        if (_configDic == null)
        {
            return;
        }

        _configDic = null;
        _openDic.clear();

        foreach (var list in _eventActiveDic)
        {
            TriggerEventRegistData[] values1 = list.getValues();

            for (int i = 0, len = list.size(); i < len; ++i)
            {
                _eventRegistDataPool.back(values1[i]);
                values1[i] = null;
            }

            list.justClearSize();
        }

        int[]             keys   = _instanceDic.getKeys();
        TriggerInstance[] values = _instanceDic.getValues();
        int             fv       = _instanceDic.getFreeValue();
        TriggerInstance v;

        for (int i = keys.Length - 1; i >= 0; --i)
        {
            if ((keys[i]) != fv)
            {
                v = values[i];
                _instancePool.back(v);
                keys[i]   = fv;
                values[i] = null;
            }
        }

        _instanceDic.justClearSize();

        TriggerActionRunner[] keys2 = _timerRunnerDic.getKeys();
        TriggerActionRunner   k2;

        for (int i2 = keys2.Length - 1; i2 >= 0; --i2)
        {
            if ((k2 = keys2[i2]) != null)
            {
                _argPool.back(k2.arg);
                disposeActionRunner(k2);
                keys2[i2] = null;
            }
        }

        _timerRunnerDic.justClearSize();

        TriggerIntervalData[] keys3 = _timerIntervalDic.getKeys();
        TriggerIntervalData   k3;

        for (int i3 = keys3.Length - 1; i3 >= 0; --i3)
        {
            if ((k3 = keys3[i3]) != null)
            {
                _intervalPool.back(k3);
                keys3[i3] = null;
            }
        }

        _timerIntervalDic.justClearSize();
    }