Skip to content

Commit 05ed348

Browse files
authored
only visit nonfunction_mt once when traversing method tables (#42821)
1 parent d71b77d commit 05ed348

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/gf.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ static void foreach_mtable_in_module(
442442
jl_typename_t *tn = ((jl_datatype_t*)v)->name;
443443
if (tn->module == m && tn->name == b->name) {
444444
jl_methtable_t *mt = tn->mt;
445-
if (mt != NULL && (jl_value_t*)mt != jl_nothing && mt != jl_type_type_mt) {
445+
if (mt != NULL && (jl_value_t*)mt != jl_nothing && mt != jl_type_type_mt && mt != jl_nonfunction_mt) {
446446
visit(mt, env);
447447
}
448448
}
@@ -467,6 +467,7 @@ void jl_foreach_reachable_mtable(void (*visit)(jl_methtable_t *mt, void *env), v
467467
JL_GC_PUSH2(&visited, &mod_array);
468468
mod_array = jl_get_loaded_modules();
469469
visit(jl_type_type_mt, env);
470+
visit(jl_nonfunction_mt, env);
470471
if (mod_array) {
471472
int i;
472473
for (i = 0; i < jl_array_len(mod_array); i++) {

0 commit comments

Comments
 (0)