Skip to content

Commit d84da28

Browse files
committed
Fixed an off by one error in an array assignment
In both stdlib_sorting_ord_sort.fypp and stdlib_sorting_sort_index.fypp there was an off by one array assignment, that was repeated several times throough copy/paste/edit. buf(0:array_len-mid) = array(mid:array_len-1) should have been buf(0:array_len-mid-1) = array(mid:array_len-1) Fixed in both files. [ticket: X]
1 parent cb2f0d8 commit d84da28

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

src/stdlib_sorting_ord_sort.fypp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ contains
355355
end if
356356
end do merge_lower
357357
else ! The right run is shorter ! check that it is stable
358-
buf(0:array_len-mid) = array(mid:array_len-1)
358+
buf(0:array_len-mid-1) = array(mid:array_len-1)
359359
i = mid - 1
360360
j = array_len - mid -1
361361
merge_upper: do k = array_len-1, 0, -1
@@ -696,7 +696,7 @@ contains
696696
end if
697697
end do merge_lower
698698
else ! The right run is shorter ! check that it is stable
699-
buf(0:array_len-mid) = array(mid:array_len-1)
699+
buf(0:array_len-mid-1) = array(mid:array_len-1)
700700
i = mid - 1
701701
j = array_len - mid -1
702702
merge_upper: do k = array_len-1, 0, -1
@@ -1036,7 +1036,7 @@ contains
10361036
end if
10371037
end do merge_lower
10381038
else ! The right run is shorter ! check that it is stable
1039-
buf(0:array_len-mid) = array(mid:array_len-1)
1039+
buf(0:array_len-mid-1) = array(mid:array_len-1)
10401040
i = mid - 1
10411041
j = array_len - mid -1
10421042
merge_upper: do k = array_len-1, 0, -1
@@ -1373,7 +1373,7 @@ contains
13731373
end if
13741374
end do merge_lower
13751375
else ! The right run is shorter ! check that it is stable
1376-
buf(0:array_len-mid) = array(mid:array_len-1)
1376+
buf(0:array_len-mid-1) = array(mid:array_len-1)
13771377
i = mid - 1
13781378
j = array_len - mid -1
13791379
merge_upper: do k = array_len-1, 0, -1

src/stdlib_sorting_sort_index.fypp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -414,8 +414,8 @@ contains
414414
end if
415415
end do merge_lower
416416
else ! The right run is shorter
417-
buf(0:array_len-mid) = array(mid:array_len-1)
418-
ibuf(0:array_len-mid) = index(mid:array_len-1)
417+
buf(0:array_len-mid-1) = array(mid:array_len-1)
418+
ibuf(0:array_len-mid-1) = index(mid:array_len-1)
419419
i = mid - 1
420420
j = array_len - mid -1
421421
merge_upper: do k = array_len-1, 0, -1
@@ -822,8 +822,8 @@ contains
822822
end if
823823
end do merge_lower
824824
else ! The right run is shorter
825-
buf(0:array_len-mid) = array(mid:array_len-1)
826-
ibuf(0:array_len-mid) = index(mid:array_len-1)
825+
buf(0:array_len-mid-1) = array(mid:array_len-1)
826+
ibuf(0:array_len-mid-1) = index(mid:array_len-1)
827827
i = mid - 1
828828
j = array_len - mid -1
829829
merge_upper: do k = array_len-1, 0, -1
@@ -1228,8 +1228,8 @@ contains
12281228
end if
12291229
end do merge_lower
12301230
else ! The right run is shorter
1231-
buf(0:array_len-mid) = array(mid:array_len-1)
1232-
ibuf(0:array_len-mid) = index(mid:array_len-1)
1231+
buf(0:array_len-mid-1) = array(mid:array_len-1)
1232+
ibuf(0:array_len-mid-1) = index(mid:array_len-1)
12331233
i = mid - 1
12341234
j = array_len - mid -1
12351235
merge_upper: do k = array_len-1, 0, -1
@@ -1631,8 +1631,8 @@ contains
16311631
end if
16321632
end do merge_lower
16331633
else ! The right run is shorter
1634-
buf(0:array_len-mid) = array(mid:array_len-1)
1635-
ibuf(0:array_len-mid) = index(mid:array_len-1)
1634+
buf(0:array_len-mid-1) = array(mid:array_len-1)
1635+
ibuf(0:array_len-mid-1) = index(mid:array_len-1)
16361636
i = mid - 1
16371637
j = array_len - mid -1
16381638
merge_upper: do k = array_len-1, 0, -1

0 commit comments

Comments
 (0)