Skip to content

Commit 586a643

Browse files
authored
Merge pull request #11 from desertwitch/issue-10
fix: return nil ptr on error and safeguard embedding nil ptrs in returns
2 parents 33d5d12 + 368a1de commit 586a643

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

sort_generic.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ func Generic[E any](input <-chan E, fromBytes FromBytesGeneric[E], toBytes ToByt
164164
s.mergeErrChan <- err
165165
close(s.mergeErrChan)
166166
close(s.mergeChunkChan)
167+
return nil, s.mergeChunkChan, s.mergeErrChan
167168
}
168169
return s, s.mergeChunkChan, s.mergeErrChan
169170
}

sort_ordered.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ func (s *OrderedSorter[T]) toBytesOrdered(d T) ([]byte, error) {
6969
func Ordered[T cmp.Ordered](input <-chan T, config *Config) (*OrderedSorter[T], <-chan T, <-chan error) {
7070
orderedSorter := newOrderedSorter[T]()
7171
s, output, errChan := Generic(input, orderedSorter.fromBytesOrdered, orderedSorter.toBytesOrdered, cmp.Compare, config)
72+
if s == nil {
73+
return nil, output, errChan
74+
}
7275
orderedSorter.GenericSorter = *s
7376
return orderedSorter, output, errChan
7477
}

sort_sorttype_legacy.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ func New(input <-chan SortType, fromBytes FromBytes, lessFunc CompareLessFunc, c
7777
compareGeneric := makeCompareSortType(lessFunc)
7878

7979
genericSorter, output, errChan := Generic(input, fromBytesGeneric, sortTypeToBytes, compareGeneric, config)
80+
if genericSorter == nil {
81+
return nil, output, errChan
82+
}
83+
8084
s := &SortTypeSorter{GenericSorter: *genericSorter}
8185
return s, output, errChan
8286
}

sort_strings.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ func toBytesString(s string) ([]byte, error) {
2828
// This function provides backward compatibility with the legacy string-specific API.
2929
func Strings(input <-chan string, config *Config) (*StringSorter, <-chan string, <-chan error) {
3030
genericSorter, output, errChan := Generic(input, fromBytesString, toBytesString, cmp.Compare, config)
31+
if genericSorter == nil {
32+
return nil, output, errChan
33+
}
3134
s := &StringSorter{GenericSorter: *genericSorter}
3235
return s, output, errChan
3336
}

0 commit comments

Comments
 (0)