From 69ef5ce9959b317a83399dd4930adb247e84cbb0 Mon Sep 17 00:00:00 2001 From: Valentin Churavy Date: Mon, 15 Sep 2025 17:50:45 +0200 Subject: [PATCH] Fix missing CodeInstance owner lookup in _jl_invoke Fixed on main as 92fc06fd83a, but not fixed in earlier Julia versions --- src/gf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gf.c b/src/gf.c index 8f8b128e951ce..8c660cb744fcf 100644 --- a/src/gf.c +++ b/src/gf.c @@ -2925,7 +2925,8 @@ STATIC_INLINE jl_value_t *_jl_invoke(jl_value_t *F, jl_value_t **args, uint32_t // manually inlined copy of jl_method_compiled jl_code_instance_t *codeinst = jl_atomic_load_relaxed(&mfunc->cache); while (codeinst) { - if (jl_atomic_load_relaxed(&codeinst->min_world) <= world && world <= jl_atomic_load_relaxed(&codeinst->max_world)) { + if (jl_atomic_load_relaxed(&codeinst->min_world) <= world && world <= jl_atomic_load_relaxed(&codeinst->max_world) + && codeinst->owner == jl_nothing) { jl_callptr_t invoke = jl_atomic_load_acquire(&codeinst->invoke); if (invoke != NULL) { jl_value_t *res = invoke(F, args, nargs, codeinst);