mirror of
https://github.com/sot-tech/mochi.git
synced 2026-05-03 10:57:56 -07:00
deps: Update bencode to pick up uint16 fix
This commit is contained in:
6
Godeps/_workspace/src/github.com/chihaya/bencode/encoder.go
generated
vendored
6
Godeps/_workspace/src/github.com/chihaya/bencode/encoder.go
generated
vendored
@@ -62,6 +62,12 @@ func marshal(w io.Writer, data interface{}) error {
|
||||
case uint:
|
||||
marshalUint(w, uint64(v))
|
||||
|
||||
case int16:
|
||||
marshalInt(w, int64(v))
|
||||
|
||||
case uint16:
|
||||
marshalUint(w, uint64(v))
|
||||
|
||||
case int64:
|
||||
marshalInt(w, v)
|
||||
|
||||
|
||||
2
Godeps/_workspace/src/github.com/chihaya/bencode/encoder_test.go
generated
vendored
2
Godeps/_workspace/src/github.com/chihaya/bencode/encoder_test.go
generated
vendored
@@ -19,6 +19,8 @@ var marshalTests = []struct {
|
||||
{uint(43), "i43e"},
|
||||
{int64(44), "i44e"},
|
||||
{uint64(45), "i45e"},
|
||||
{int16(44), "i44e"},
|
||||
{uint16(45), "i45e"},
|
||||
|
||||
{"example", "7:example"},
|
||||
{[]byte("example"), "7:example"},
|
||||
|
||||
11
Godeps/_workspace/src/github.com/pushrax/bufferpool/bufferpool.go
generated
vendored
11
Godeps/_workspace/src/github.com/pushrax/bufferpool/bufferpool.go
generated
vendored
@@ -29,7 +29,7 @@ func New(poolSize, bufferSize int) *BufferPool {
|
||||
// Take is used to obtain a new zeroed buffer. This will allocate a new buffer
|
||||
// if the pool was empty.
|
||||
func (pool *BufferPool) Take() *bytes.Buffer {
|
||||
return bytes.NewBuffer(pool.TakeSlice())
|
||||
return bytes.NewBuffer(pool.TakeSlice()[:0])
|
||||
}
|
||||
|
||||
// TakeSlice is used to obtain a new slice. This will allocate a new slice
|
||||
@@ -38,7 +38,7 @@ func (pool *BufferPool) TakeSlice() (slice []byte) {
|
||||
select {
|
||||
case slice = <-pool.pool:
|
||||
default:
|
||||
slice = make([]byte, 0, pool.bufferSize)
|
||||
slice = make([]byte, pool.bufferSize)
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -46,12 +46,13 @@ func (pool *BufferPool) TakeSlice() (slice []byte) {
|
||||
// Give is used to attempt to return a buffer to the pool. It may not
|
||||
// be added to the pool if it was already full.
|
||||
func (pool *BufferPool) Give(buf *bytes.Buffer) error {
|
||||
if buf.Len() != pool.bufferSize {
|
||||
buf.Reset()
|
||||
slice := buf.Bytes()
|
||||
|
||||
if cap(slice) < pool.bufferSize {
|
||||
return errors.New("Gave an incorrectly sized buffer to the pool.")
|
||||
}
|
||||
|
||||
buf.Reset()
|
||||
slice := buf.Bytes()
|
||||
return pool.GiveSlice(slice[:buf.Len()])
|
||||
}
|
||||
|
||||
|
||||
34
Godeps/_workspace/src/github.com/pushrax/bufferpool/bufferpool_test.go
generated
vendored
34
Godeps/_workspace/src/github.com/pushrax/bufferpool/bufferpool_test.go
generated
vendored
@@ -12,6 +12,21 @@ import (
|
||||
"github.com/pushrax/bufferpool"
|
||||
)
|
||||
|
||||
func ExampleNew() {
|
||||
bp := bufferpool.New(10, 255)
|
||||
|
||||
dogBuffer := bp.Take()
|
||||
dogBuffer.WriteString("Dog!")
|
||||
bp.Give(dogBuffer)
|
||||
|
||||
catBuffer := bp.Take() // dogBuffer is reused and reset.
|
||||
catBuffer.WriteString("Cat!")
|
||||
|
||||
fmt.Println(catBuffer)
|
||||
// Output:
|
||||
// Cat!
|
||||
}
|
||||
|
||||
func TestTakeFromEmpty(t *testing.T) {
|
||||
bp := bufferpool.New(1, 1)
|
||||
poolBuf := bp.Take()
|
||||
@@ -37,17 +52,16 @@ func TestTakeFromFilled(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func ExampleNew() {
|
||||
bp := bufferpool.New(10, 255)
|
||||
func TestSliceSemantics(t *testing.T) {
|
||||
bp := bufferpool.New(1, 8)
|
||||
|
||||
dogBuffer := bp.Take()
|
||||
dogBuffer.WriteString("Dog!")
|
||||
bp.Give(dogBuffer)
|
||||
buf := bp.Take()
|
||||
buf.WriteString("abc")
|
||||
bp.Give(buf)
|
||||
|
||||
catBuffer := bp.Take() // dogBuffer is reused and reset.
|
||||
catBuffer.WriteString("Cat!")
|
||||
buf2 := bp.TakeSlice()
|
||||
|
||||
fmt.Println(catBuffer)
|
||||
// Output:
|
||||
// Cat!
|
||||
if !bytes.Equal(buf2[:3], []byte("abc")) {
|
||||
t.Fatalf("Buffer from filled bufferpool was recycled incorrectly.")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user