Ejemplo n.º 1
0
    private Dictionary <ArrayPointer <byte>, TSymbolType> GetDict()
    {
        if (pooledDicts.Count < 1)
        {
            return(new Dictionary <ArrayPointer <byte>, TSymbolType> ());
        }

        var idx = pooledDicts.Count - 1;

        var ret = pooledDicts [idx];

        pooledDicts.RemoveAt(idx);

        return(ret);
    }
Ejemplo n.º 2
0
    public void Pop()
    {
        CheckDisposed();

        version++;

        Debug.Assert(scopes.Count > 0);

        var idx  = scopes.Count - 1;
        var dict = scopes [idx].Symbols;

        scopes.RemoveAt(idx);

        dict.Clear();
        pooledDicts.Add(dict);
    }