formula: cache based on full_name

This commit is contained in:
Bo Anderson 2020-08-02 13:43:32 +01:00
parent df16e9f2de
commit a8060923ed

View File

@ -1225,7 +1225,7 @@ class Formula
def outdated_kegs(fetch_head: false) def outdated_kegs(fetch_head: false)
raise Migrator::MigrationNeededError, self if migration_needed? raise Migrator::MigrationNeededError, self if migration_needed?
cache_key = "#{name}-#{fetch_head}" cache_key = "#{full_name}-#{fetch_head}"
Formula.cache[:outdated_kegs] ||= {} Formula.cache[:outdated_kegs] ||= {}
Formula.cache[:outdated_kegs][cache_key] ||= begin Formula.cache[:outdated_kegs][cache_key] ||= begin
all_kegs = [] all_kegs = []
@ -1603,7 +1603,7 @@ class Formula
# @private # @private
def opt_or_installed_prefix_keg def opt_or_installed_prefix_keg
Formula.cache[:opt_or_installed_prefix_keg] ||= {} Formula.cache[:opt_or_installed_prefix_keg] ||= {}
Formula.cache[:opt_or_installed_prefix_keg][name] ||= if optlinked? && opt_prefix.exist? Formula.cache[:opt_or_installed_prefix_keg][full_name] ||= if optlinked? && opt_prefix.exist?
Keg.new(opt_prefix) Keg.new(opt_prefix)
elsif (latest_installed_prefix = installed_prefixes.last) elsif (latest_installed_prefix = installed_prefixes.last)
Keg.new(latest_installed_prefix) Keg.new(latest_installed_prefix)
@ -1635,7 +1635,7 @@ class Formula
# Returns a list of Formula objects that are required at runtime. # Returns a list of Formula objects that are required at runtime.
# @private # @private
def runtime_formula_dependencies(read_from_tab: true, undeclared: true) def runtime_formula_dependencies(read_from_tab: true, undeclared: true)
cache_key = "#{name}-#{read_from_tab}-#{undeclared}" cache_key = "#{full_name}-#{read_from_tab}-#{undeclared}"
Formula.cache[:runtime_formula_dependencies] ||= {} Formula.cache[:runtime_formula_dependencies] ||= {}
Formula.cache[:runtime_formula_dependencies][cache_key] ||= runtime_dependencies( Formula.cache[:runtime_formula_dependencies][cache_key] ||= runtime_dependencies(
@ -1653,10 +1653,10 @@ class Formula
# that we don't end up with something `Formula#runtime_dependencies` can't # that we don't end up with something `Formula#runtime_dependencies` can't
# read from a `Tab`. # read from a `Tab`.
Formula.cache[:runtime_installed_formula_dependents] = {} Formula.cache[:runtime_installed_formula_dependents] = {}
Formula.cache[:runtime_installed_formula_dependents][name] ||= Formula.installed Formula.cache[:runtime_installed_formula_dependents][full_name] ||= Formula.installed
.select(&:opt_or_installed_prefix_keg) .select(&:opt_or_installed_prefix_keg)
.select(&:runtime_dependencies) .select(&:runtime_dependencies)
.select do |f| .select do |f|
f.runtime_formula_dependencies.any? do |dep| f.runtime_formula_dependencies.any? do |dep|
full_name == dep.full_name full_name == dep.full_name
rescue rescue