Skip to content

Commit 0daab8a

Browse files
jpsamaroovtjnashvchuravy
authored
Fix loading of AMDGPU and CUDA (#47334)
Co-authored-by: Valentin Churavy <[email protected]> Co-authored-by: Jameson Nash <[email protected]> Co-authored-by: Valentin Churavy <[email protected]>
1 parent 19d06df commit 0daab8a

File tree

1 file changed

+33
-30
lines changed

1 file changed

+33
-30
lines changed

src/dump.c

+33-30
Original file line numberDiff line numberDiff line change
@@ -2381,17 +2381,18 @@ static jl_array_t *jl_verify_edges(jl_array_t *targets)
23812381
jl_methtable_t *mt = jl_method_get_table(((jl_method_instance_t*)callee)->def.method);
23822382
if ((jl_value_t*)mt == jl_nothing) {
23832383
valid = 0;
2384-
break;
2385-
}
2386-
matches = jl_gf_invoke_lookup_worlds(invokesig, (jl_value_t*)mt, world, &min_valid, &max_valid);
2387-
if (matches == jl_nothing) {
2388-
valid = 0;
2389-
break;
23902384
}
2391-
matches = (jl_value_t*)((jl_method_match_t*)matches)->method;
2392-
if (matches != expected) {
2393-
valid = 0;
2394-
break;
2385+
else {
2386+
matches = jl_gf_invoke_lookup_worlds(invokesig, (jl_value_t*)mt, world, &min_valid, &max_valid);
2387+
if (matches == jl_nothing) {
2388+
valid = 0;
2389+
}
2390+
else {
2391+
matches = (jl_value_t*)((jl_method_match_t*)matches)->method;
2392+
if (matches != expected) {
2393+
valid = 0;
2394+
}
2395+
}
23952396
}
23962397
}
23972398
else {
@@ -2407,30 +2408,32 @@ static jl_array_t *jl_verify_edges(jl_array_t *targets)
24072408
-1, 0, world, &min_valid, &max_valid, &ambig);
24082409
if (matches == jl_false) {
24092410
valid = 0;
2410-
break;
24112411
}
2412-
// setdiff!(matches, expected)
2413-
size_t j, k, ins = 0;
2414-
if (jl_array_len(matches) != jl_array_len(expected)) {
2415-
valid = 0;
2416-
if (!_jl_debug_method_invalidation)
2417-
break;
2418-
}
2419-
for (k = 0; k < jl_array_len(matches); k++) {
2420-
jl_method_t *match = ((jl_method_match_t*)jl_array_ptr_ref(matches, k))->method;
2421-
size_t l = jl_array_len(expected);
2422-
for (j = 0; j < l; j++)
2423-
if (match == (jl_method_t*)jl_array_ptr_ref(expected, j))
2424-
break;
2425-
if (j == l) {
2426-
// intersection has a new method or a method was
2427-
// deleted--this is now probably no good, just invalidate
2428-
// everything about it now
2412+
else {
2413+
// setdiff!(matches, expected)
2414+
size_t j, k, ins = 0;
2415+
if (jl_array_len(matches) != jl_array_len(expected)) {
24292416
valid = 0;
2430-
jl_array_ptr_set(matches, ins++, match);
24312417
}
2418+
for (k = 0; k < jl_array_len(matches); k++) {
2419+
jl_method_t *match = ((jl_method_match_t*)jl_array_ptr_ref(matches, k))->method;
2420+
size_t l = jl_array_len(expected);
2421+
for (j = 0; j < l; j++)
2422+
if (match == (jl_method_t*)jl_array_ptr_ref(expected, j))
2423+
break;
2424+
if (j == l) {
2425+
// intersection has a new method or a method was
2426+
// deleted--this is now probably no good, just invalidate
2427+
// everything about it now
2428+
valid = 0;
2429+
if (!_jl_debug_method_invalidation)
2430+
break;
2431+
jl_array_ptr_set(matches, ins++, match);
2432+
}
2433+
}
2434+
if (!valid && _jl_debug_method_invalidation)
2435+
jl_array_del_end((jl_array_t*)matches, jl_array_len(matches) - ins);
24322436
}
2433-
jl_array_del_end((jl_array_t*)matches, jl_array_len(matches) - ins);
24342437
}
24352438
jl_array_uint8_set(valids, i, valid);
24362439
if (!valid && _jl_debug_method_invalidation) {

0 commit comments

Comments
 (0)