# File lib/linecache.rb, line 111
  def checkcache(filename=nil, use_script_lines=false)
    
    if !filename
      filenames = @@file_cache.keys()
    elsif @@file_cache.member?(filename)
      filenames = [filename]
    else
      return nil
    end

    result = []
    for filename in filenames
      next unless @@file_cache.member?(filename)
      path = @@file_cache[filename].path
      if File.exist?(path)
        cache_info = @@file_cache[filename]
        stat = File.stat(path)
        if stat && 
            (cache_info.size != stat.size or cache_info.mtime != stat.mtime)
          result << filename
          update_cache(filename, use_script_lines)
        end
      end
    end
    return result
  end