public T acquire() {
        T element;

        if (mRoot != null) {
            element = mRoot;
            mRoot = element.getNextPoolable();
            mPoolCount--;
        } else {
            element = mManager.newInstance();
        }

        if (element != null) {
            element.setNextPoolable(null);
            element.setPooled(false);
            mManager.onAcquired(element);
        }

        return element;
    }
Number of objects in the pool
app/src/main/java/com/sunnyweather/android/flame/master/flame/danmaku/danmaku/model/objectpool/FinitePool.java