In qsort, make sure to do nothing if count is 0.
Previously, it could behave incorrectly in some cases where count was 0. This would happen if the address calculation &base[-1] wrapped around and produced a large number, either because base was NULL or because size was larger than the address of base. This fixes #33.
This commit is contained in:
parent
9af245933c
commit
7e95f8b182
|
@ -663,6 +663,9 @@ qsort start
|
||||||
phk
|
phk
|
||||||
plb
|
plb
|
||||||
|
|
||||||
|
lda count nothing to do if count is 0
|
||||||
|
ora count+2
|
||||||
|
beq done
|
||||||
dec4 count set count to the addr of the last entry
|
dec4 count set count to the addr of the last entry
|
||||||
mul4 count,size
|
mul4 count,size
|
||||||
add4 count,base
|
add4 count,base
|
||||||
|
@ -677,7 +680,7 @@ qsort start
|
||||||
ph4 base
|
ph4 base
|
||||||
jsl rsort
|
jsl rsort
|
||||||
|
|
||||||
plb
|
done plb
|
||||||
creturn
|
creturn
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue