Randomizer fix

This commit is contained in:
York Jasper Niebuhr 2026-04-08 22:08:44 +02:00
parent d6bf54d3ab
commit cf0d403716
2 changed files with 3 additions and 1 deletions

View File

@ -335,6 +335,8 @@ static void __init do_swap(spslr_u32 target, spslr_u32 origin_idx,
*get_rfield(target, origin_idx) = tmp; *get_rfield(target, origin_idx) = tmp;
get_rfield(target, origin_idx)->offset = origin_region_ptr; get_rfield(target, origin_idx)->offset = origin_region_ptr;
origin_region_ptr += get_ofield(target, get_rfield(target, origin_idx)->oidx)->size; origin_region_ptr += get_ofield(target, get_rfield(target, origin_idx)->oidx)->size;
it--; // Must still look at the element now at it
} else { } else {
for (spslr_u32 pull_it = it; pull_it > origin_idx + (spslr_u32)pulled; pull_it--) for (spslr_u32 pull_it = it; pull_it > origin_idx + (spslr_u32)pulled; pull_it--)
*get_rfield(target, pull_it) = *get_rfield(target, pull_it - 1); *get_rfield(target, pull_it) = *get_rfield(target, pull_it - 1);

View File

@ -284,7 +284,7 @@ static int check_target(spslr_u32 tidx) {
int main(void) { int main(void) {
srand((unsigned)time(NULL)); srand((unsigned)time(NULL));
spslr_u32 rounds = 1000; spslr_u32 rounds = 100;
for (spslr_u32 iter = 0; iter < rounds; iter++) { for (spslr_u32 iter = 0; iter < rounds; iter++) {
if (spslr_randomizer_init() < 0) { if (spslr_randomizer_init() < 0) {