@@ -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