# New Ticket Created by Andrew Johnson
# Please include the string: [perl #56636]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56636 >
If sort is given a comparison function that always returns >0, the result is
a segfault.
.sub 'main' :main
.local pmc array
array = new 'ResizablePMCArray'
push array, 4
push array, 5
push array, 3
push array, 2
push array, 5
push array, 1
$S0 = join ' ', array
say $S0
$P0 = get_global 'cmp_func'
array.sort($P0)
$S0 = join ' ', array
say $S0
.end
.sub 'cmp_func'
.param pmc a
.param pmc b
$I0 = 1
.return ($I0)
.end
Parrot_quicksort() is in src/utils.c; the first do-while loop has nothing to
stop it when j reaches 0, so it keeps going outside of the data array. I
guess that the while condition needs j > 0 adding to it to prevent that from
happening.
- Andrew/Songmaster