Skip to content

Commit 8dc02b3

Browse files
Merge pull request #104 from brianolson/fewer-alloc
fixed array in struct instead of heap slice
2 parents 6dace5a + 7af3489 commit 8dc02b3

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

io.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var (
1111

1212
type CborReader struct {
1313
r BytePeeker
14-
hbuf []byte
14+
hbuf [maxHeaderSize]byte
1515
}
1616

1717
func NewCborReader(r io.Reader) *CborReader {
@@ -20,8 +20,7 @@ func NewCborReader(r io.Reader) *CborReader {
2020
}
2121

2222
return &CborReader{
23-
r: GetPeeker(r),
24-
hbuf: make([]byte, maxHeaderSize),
23+
r: GetPeeker(r),
2524
}
2625
}
2726

@@ -38,7 +37,7 @@ func (cr *CborReader) UnreadByte() error {
3837
}
3938

4039
func (cr *CborReader) ReadHeader() (byte, uint64, error) {
41-
return CborReadHeaderBuf(cr.r, cr.hbuf)
40+
return CborReadHeaderBuf(cr.r, cr.hbuf[:])
4241
}
4342

4443
func (cr *CborReader) SetReader(r io.Reader) {
@@ -52,7 +51,7 @@ var (
5251

5352
type CborWriter struct {
5453
w io.Writer
55-
hbuf []byte
54+
hbuf [maxHeaderSize]byte
5655

5756
sw io.StringWriter
5857
}
@@ -63,8 +62,7 @@ func NewCborWriter(w io.Writer) *CborWriter {
6362
}
6463

6564
cw := &CborWriter{
66-
w: w,
67-
hbuf: make([]byte, maxHeaderSize),
65+
w: w,
6866
}
6967

7068
if sw, ok := w.(io.StringWriter); ok {
@@ -88,11 +86,11 @@ func (cw *CborWriter) Write(p []byte) (n int, err error) {
8886
}
8987

9088
func (cw *CborWriter) WriteMajorTypeHeader(t byte, l uint64) error {
91-
return WriteMajorTypeHeaderBuf(cw.hbuf, cw.w, t, l)
89+
return WriteMajorTypeHeaderBuf(cw.hbuf[:], cw.w, t, l)
9290
}
9391

9492
func (cw *CborWriter) CborWriteHeader(t byte, l uint64) error {
95-
return WriteMajorTypeHeaderBuf(cw.hbuf, cw.w, t, l)
93+
return WriteMajorTypeHeaderBuf(cw.hbuf[:], cw.w, t, l)
9694
}
9795

9896
func (cw *CborWriter) WriteString(s string) (int, error) {

0 commit comments

Comments
 (0)