Port calls to slices.Sort functions since they now need a cmp() function rather than a less() function

Also rename os.SEEK_* to io.Seek* as the former has been deprecated
This commit is contained in:
Kovid Goyal
2023-08-04 22:50:13 +05:30
parent 18d48c8dcd
commit 341d845b9a
18 changed files with 60 additions and 34 deletions

View File

@@ -244,7 +244,7 @@ func OpenNativeImageFromReader(f io.ReadSeeker) (ans *ImageData, err error) {
if err != nil {
return nil, err
}
f.Seek(0, os.SEEK_SET)
f.Seek(0, io.SeekStart)
ans = &ImageData{Width: c.Width, Height: c.Height, Format_uppercase: strings.ToUpper(fmt)}
if ans.Format_uppercase == "GIF" {
@@ -563,7 +563,7 @@ func RenderWithMagick(path string, ro *RenderOptions, frames []IdentifyRecord) (
err = fmt.Errorf("Failed to render %d out of %d frames", len(frames)-len(ans), len(frames))
return
}
slices.SortFunc(ans, func(a, b *ImageFrame) bool { return a.Number < b.Number })
slices.SortFunc(ans, func(a, b *ImageFrame) int { return a.Number - b.Number })
anchor_frame := 1
for i, frame := range ans {
anchor_frame, frame.Compose_onto = SetGIFFrameDisposal(frame.Number, anchor_frame, byte(frames[i].Disposal))

View File

@@ -79,13 +79,13 @@ func Repeat[T any](x T, n int) []T {
return ans
}
func Sort[T any](s []T, less func(a, b T) bool) []T {
slices.SortFunc(s, less)
func Sort[T any](s []T, cmp func(a, b T) int) []T {
slices.SortFunc(s, cmp)
return s
}
func StableSort[T any](s []T, less func(a, b T) bool) []T {
slices.SortStableFunc(s, less)
func StableSort[T any](s []T, cmp func(a, b T) int) []T {
slices.SortStableFunc(s, cmp)
return s
}
@@ -98,10 +98,19 @@ func sort_with_key[T any, C constraints.Ordered](stable bool, s []T, key func(a
for i, x := range s {
temp[i].val, temp[i].key = x, key(x)
}
cmp := func(a, b t) int {
if a.key < b.key {
return -1
}
if a.key > b.key {
return 1
}
return 0
}
if stable {
slices.SortStableFunc(temp, func(a, b t) bool { return a.key < b.key })
slices.SortStableFunc(temp, cmp)
} else {
slices.SortFunc(temp, func(a, b t) bool { return a.key < b.key })
slices.SortFunc(temp, cmp)
}
for i, x := range temp {
s[i] = x.val

View File

@@ -48,9 +48,9 @@ func (self *file_based_mmap) Seek(offset int64, whence int) (ret int64, err erro
switch whence {
case io.SeekStart:
self.pos = offset
case os.SEEK_END:
case io.SeekEnd:
self.pos = int64(len(self.region)) + offset
case os.SEEK_CUR:
case io.SeekCurrent:
self.pos += offset
}
return self.pos, nil

View File

@@ -123,9 +123,9 @@ func (self *syscall_based_mmap) Seek(offset int64, whence int) (ret int64, err e
switch whence {
case io.SeekStart:
self.pos = offset
case os.SEEK_END:
case io.SeekEnd:
self.pos = int64(len(self.region)) + offset
case os.SEEK_CUR:
case io.SeekCurrent:
self.pos += offset
}
return self.pos, nil