summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rubygems/specification.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
index abb6e0ecfd..3c8248793c 100644
--- a/lib/rubygems/specification.rb
+++ b/lib/rubygems/specification.rb
@@ -1124,7 +1124,12 @@ class Gem::Specification < Gem::BasicSpecification
if Gem::Specification === _spec
_spec.loaded_from = File.expand_path file.to_s
LOAD_CACHE_MUTEX.synchronize do
- LOAD_CACHE[file] = _spec
+ prev = LOAD_CACHE[file]
+ if prev
+ _spec = prev
+ else
+ LOAD_CACHE[file] = _spec
+ end
end
return _spec
end