Skip to content

Commit

Permalink
Allocate subjectFilter.tokenizedSubject on the heap
Browse files Browse the repository at this point in the history
Signed-off-by: Sven Neumann <sven.neumann@holoplot.com>
  • Loading branch information
svenfoo committed Dec 8, 2023
1 parent 2c5bd95 commit a930e59
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 12 deletions.
14 changes: 6 additions & 8 deletions server/consumer.go
Original file line number Diff line number Diff line change
Expand Up @@ -937,11 +937,10 @@ func (mset *stream) addConsumerWithAssignment(config *ConsumerConfig, oname stri
subjects := gatherSubjectFilters(o.cfg.FilterSubject, o.cfg.FilterSubjects)
for _, filter := range subjects {
sub := &subjectFilter{
subject: filter,
hasWildcard: subjectHasWildcard(filter),
subject: filter,
hasWildcard: subjectHasWildcard(filter),
tokenizedSubject: tokenizeSubjectIntoSlice(nil, filter),
}
tsa := [32]string{}
sub.tokenizedSubject = tokenizeSubjectIntoSlice(tsa[:0], filter)
o.subjf = append(o.subjf, sub)
}

Expand Down Expand Up @@ -1861,11 +1860,10 @@ func (o *consumer) updateConfig(cfg *ConsumerConfig) error {
newSubjf := make(subjectFilters, 0, len(newSubjects))
for _, newFilter := range newSubjects {
fs := &subjectFilter{
subject: newFilter,
hasWildcard: subjectHasWildcard(newFilter),
subject: newFilter,
hasWildcard: subjectHasWildcard(newFilter),
tokenizedSubject: tokenizeSubjectIntoSlice(nil, newFilter),
}
tsa := [32]string{}
fs.tokenizedSubject = tokenizeSubjectIntoSlice(tsa[:0], newFilter)
// If given subject was present, we will retain its fields values
// so `getNextMgs` can take advantage of already buffered `pmsgs`.
for _, oldFilter := range o.subjf {
Expand Down
7 changes: 3 additions & 4 deletions server/consumer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,10 @@ func consumerWithFilterSubjects(filterSubjects []string) *consumer {
c := consumer{}
for _, filter := range filterSubjects {
sub := &subjectFilter{
subject: filter,
hasWildcard: subjectHasWildcard(filter),
subject: filter,
hasWildcard: subjectHasWildcard(filter),
tokenizedSubject: tokenizeSubjectIntoSlice(nil, filter),
}
tsa := [32]string{}
sub.tokenizedSubject = tokenizeSubjectIntoSlice(tsa[:0], filter)
c.subjf = append(c.subjf, sub)
}

Expand Down

0 comments on commit a930e59

Please sign in to comment.