Skip to content

Commit b489560

Browse files
fix: fix bug in refreshed_metadata
1 parent 909e74b commit b489560

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

lib/ModelingToolkitBase/src/systems/abstractsystem.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,6 +1022,11 @@ function refreshed_metadata(meta::Base.ImmutableDict, patch = nothing)
10221022
newmeta = MetadataT()
10231023
hascache = false
10241024
for (k, v) in meta
1025+
# `Base.ImmutableDict` is like a stack. New key-value pairs (even with the same key)
1026+
# are inserted at the top of the stack. `getindex` returns the first matching key.
1027+
# We ignore repetitions of a key we've already encountered to avoid overwriting
1028+
# newer entries with lingering older ones.
1029+
haskey(newmeta, k) && continue
10251030
if k === MutableCacheKey
10261031
hascache = true
10271032
new_cache = maybe_invalidate_cache((v::MutableCacheTLVT)[]::MutableCacheT, patch)::MutableCacheT

0 commit comments

Comments
 (0)