Skip to content

Commit ba57cfa

Browse files
committed
perf(rule_engine,filter): Preallocate default accessor values
1 parent cc7973d commit ba57cfa

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

pkg/filter/accessor.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,13 @@ func (f *filter) removeAccessor(removed Accessor) {
247247
}
248248
}
249249

250+
var (
251+
zeroTime time.Time
252+
zeroSlice []string
253+
zeroIP net.IP
254+
zeroByte []byte
255+
)
256+
250257
// defaultAccessorValue provides the default value for the field.
251258
// This value is typically assigned when the accessor returns an
252259
// error or nil value, but the map valuer must contain the resolved
@@ -260,15 +267,15 @@ func defaultAccessorValue(field Field) any {
260267
case params.Float, params.Double:
261268
return 0.0
262269
case params.Time:
263-
return time.Now()
270+
return zeroTime
264271
case params.Bool:
265272
return false
266273
case params.IP, params.IPv4, params.IPv6:
267-
return net.IP{}
274+
return zeroIP
268275
case params.Binary:
269-
return []byte{}
276+
return zeroByte
270277
case params.Slice:
271-
return []string{}
278+
return zeroSlice
272279
default:
273280
return ""
274281
}

0 commit comments

Comments
 (0)