@@ -66,7 +66,9 @@ func decodeResourceLogs(src []byte, pushLogs pushLogsHandler) (err error) {
6666 return fmt .Errorf ("cannot decode Resource: %w" , err )
6767 }
6868 }
69+
6970 streamFieldsLen := len (fs .Fields )
71+ fbLen := len (fb .buf )
7072
7173 // Decode scope_logs
7274 var fc easyproto.FieldContext
@@ -82,12 +84,14 @@ func decodeResourceLogs(src []byte, pushLogs pushLogsHandler) (err error) {
8284 return fmt .Errorf ("cannot read ScopeLogs data" )
8385 }
8486
85- clear (fs .Fields [streamFieldsLen :])
86- fs .Fields = fs .Fields [:streamFieldsLen ]
87-
8887 if err := decodeScopeLogs (data , fs , fb , pushLogs ); err != nil {
8988 return fmt .Errorf ("cannot decode ScopeLogs: %w" , err )
9089 }
90+
91+ clear (fs .Fields [streamFieldsLen :])
92+ fs .Fields = fs .Fields [:streamFieldsLen ]
93+
94+ fb .buf = fb .buf [:fbLen ]
9195 }
9296 }
9397
@@ -154,11 +158,6 @@ func decodeScopeLogs(src []byte, fs *logstorage.Fields, fb *fmtBuffer, pushLogs
154158 return fmt .Errorf ("cannot read LogRecord data" )
155159 }
156160
157- clear (fs .Fields [commonFieldsLen :])
158- fs .Fields = fs .Fields [:commonFieldsLen ]
159-
160- fb .buf = fb .buf [:fbLen ]
161-
162161 eventName , timestamp , err := decodeLogRecord (data , fs , fb )
163162 if err != nil {
164163 return fmt .Errorf ("cannot decode LogRecord: %w" , err )
@@ -180,6 +179,11 @@ func decodeScopeLogs(src []byte, fs *logstorage.Fields, fb *fmtBuffer, pushLogs
180179 } else {
181180 pushLogs (timestamp , fs .Fields , streamFieldsLen )
182181 }
182+
183+ clear (fs .Fields [commonFieldsLen :])
184+ fs .Fields = fs .Fields [:commonFieldsLen ]
185+
186+ fb .buf = fb .buf [:fbLen ]
183187 }
184188 }
185189 return nil
0 commit comments