checkCacheLimit method

int checkCacheLimit(
  1. int? cacheLimit
)

Checks if this Map.length is bigger than cacheLimit and removes elements to not exceed the cacheLimit.

Implementation

int checkCacheLimit(int? cacheLimit) {
  if (cacheLimit == null) return 0;

  if (cacheLimit <= 0) {
    var length = this.length;
    clear();
    return length;
  }

  var deleted = 0;

  while (true) {
    var length = this.length;
    if (length == 0 || length <= cacheLimit) {
      break;
    }

    var k = keys.first;
    remove(k);
    var lng = this.length;
    if (lng >= length) break;
    deleted++;
  }

  return deleted;
}