Skip to content

Commit 1aa6bf0

Browse files
committed
add pool
1 parent aa469d2 commit 1aa6bf0

File tree

2 files changed

+3
-5
lines changed

2 files changed

+3
-5
lines changed

bridges/otelzap/core.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,9 @@ func (o *Core) Write(ent zapcore.Entry, fields []zapcore.Field) error {
172172
}
173173

174174
func convertField(fields []zapcore.Field) (context.Context, []log.KeyValue) {
175-
// TODO: Use objectEncoder from a pool instead of newObjectEncoder.
176175
var ctx context.Context
177-
enc := newObjectEncoder(len(fields))
176+
enc, free := getObjectEncoder()
177+
defer free()
178178
for _, field := range fields {
179179
if ctxFld, ok := field.Interface.(context.Context); ok {
180180
ctx = ctxFld

bridges/otelzap/encoder.go

+1-3
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func getObjectEncoder() (obj *objectEncoder, free func()) {
4242
obj.root.attrs = obj.root.attrs[:0]
4343
obj.root.name = ""
4444
obj.root.next = nil
45-
obj.cur = obj.root
45+
obj.cur.attrs = obj.cur.attrs[:0]
4646
objectEncoderPool.Put(obj)
4747
}
4848
}
@@ -230,15 +230,13 @@ type arrayEncoder struct {
230230
}
231231

232232
func (a *arrayEncoder) AppendArray(v zapcore.ArrayMarshaler) error {
233-
// TODO: Use arrayEncoder from a pool.
234233
arr := &arrayEncoder{}
235234
err := v.MarshalLogArray(arr)
236235
a.elems = append(a.elems, log.SliceValue(arr.elems...))
237236
return err
238237
}
239238

240239
func (a *arrayEncoder) AppendObject(v zapcore.ObjectMarshaler) error {
241-
// TODO: Use objectEncoder from a pool.
242240
m := newObjectEncoder(2)
243241
err := v.MarshalLogObject(m)
244242
m.calculate(m.root)

0 commit comments

Comments
 (0)