diff --git a/kernel/core/autoload.rb b/kernel/core/autoload.rb index 7f022cf..e27f141 100644 --- a/kernel/core/autoload.rb +++ b/kernel/core/autoload.rb @@ -29,19 +29,21 @@ class Autoload # Class methods class << self + # Initializes as a Hash with an empty array as the default value def autoloads - @autoloads ||= {} + @autoloads ||= Hash.new {|h,k| h[k] = Array.new } end # Called by Autoload#initialize def add(al) - autoloads[al.path] = al + autoloads[al.path] << al end # Called by require; see kernel/core/compile.rb def remove(path) al = autoloads.delete(path) - al.discard if al + return unless al + al.each {|a| a.discard } end end end