Commit a10267ad authored by Rob Pike's avatar Rob Pike

If ByteBuffer has never been used, b.buf is nil but Data() should still work.

Fix the bug using a (safe) shared global empty array.

R=rsc
DELTA=8  (8 added, 0 deleted, 0 changed)
OCL=21303
CL=21303
parent 30a1a8c9
...@@ -75,7 +75,15 @@ func (b *ByteBuffer) Len() int { ...@@ -75,7 +75,15 @@ func (b *ByteBuffer) Len() int {
return b.len return b.len
} }
// If the buffer is empty, Data() should still give a valid array.
// Use this variable as a surrogate. It's immutable (can't be
// grown, can't store any data) so it's safe to share.
var EmptyByteArray = new([]byte, 0)
func (b *ByteBuffer) Data() *[]byte { func (b *ByteBuffer) Data() *[]byte {
if b.buf == nil {
return EmptyByteArray
}
return b.buf[b.off:b.len] return b.buf[b.off:b.len]
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment