fix error for go1 compatiblity

This commit is contained in:
Eric Liang 2012-03-31 00:34:23 +08:00
parent 3399148d75
commit 36fef91a67
2 changed files with 47 additions and 48 deletions

View File

@ -3,12 +3,12 @@ package msgpack
import ( import (
"io" "io"
"os" "os"
"unsafe"
"reflect" "reflect"
"unsafe"
) )
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackUint8(writer io.Writer, value uint8) (n int, err os.Error) { func PackUint8(writer io.Writer, value uint8) (n int, err error) {
if value < 128 { if value < 128 {
return writer.Write([]byte{byte(value)}) return writer.Write([]byte{byte(value)})
} }
@ -16,7 +16,7 @@ func PackUint8(writer io.Writer, value uint8) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackUint16(writer io.Writer, value uint16) (n int, err os.Error) { func PackUint16(writer io.Writer, value uint16) (n int, err error) {
if value < 128 { if value < 128 {
return writer.Write([]byte{byte(value)}) return writer.Write([]byte{byte(value)})
} else if value < 256 { } else if value < 256 {
@ -26,7 +26,7 @@ func PackUint16(writer io.Writer, value uint16) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackUint32(writer io.Writer, value uint32) (n int, err os.Error) { func PackUint32(writer io.Writer, value uint32) (n int, err error) {
if value < 128 { if value < 128 {
return writer.Write([]byte{byte(value)}) return writer.Write([]byte{byte(value)})
} else if value < 256 { } else if value < 256 {
@ -38,7 +38,7 @@ func PackUint32(writer io.Writer, value uint32) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackUint64(writer io.Writer, value uint64) (n int, err os.Error) { func PackUint64(writer io.Writer, value uint64) (n int, err error) {
if value < 128 { if value < 128 {
return writer.Write([]byte{byte(value)}) return writer.Write([]byte{byte(value)})
} else if value < 256 { } else if value < 256 {
@ -51,7 +51,7 @@ func PackUint64(writer io.Writer, value uint64) (n int, err os.Error) {
return writer.Write([]byte{0xcf, byte(value >> 56), byte(value >> 48), byte(value >> 40), byte(value >> 32), byte(value >> 24), byte(value >> 16), byte(value >> 8), byte(value)}) return writer.Write([]byte{0xcf, byte(value >> 56), byte(value >> 48), byte(value >> 40), byte(value >> 32), byte(value >> 24), byte(value >> 16), byte(value >> 8), byte(value)})
} }
func PackUint(writer io.Writer, value uint) (n int, err os.Error) { func PackUint(writer io.Writer, value uint) (n int, err error) {
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
switch unsafe.Sizeof(value) { switch unsafe.Sizeof(value) {
case 4: case 4:
@ -63,7 +63,7 @@ func PackUint(writer io.Writer, value uint) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackInt8(writer io.Writer, value int8) (n int, err os.Error) { func PackInt8(writer io.Writer, value int8) (n int, err error) {
if value < -32 { if value < -32 {
return writer.Write([]byte{0xd0, byte(value)}) return writer.Write([]byte{0xd0, byte(value)})
} }
@ -71,7 +71,7 @@ func PackInt8(writer io.Writer, value int8) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackInt16(writer io.Writer, value int16) (n int, err os.Error) { func PackInt16(writer io.Writer, value int16) (n int, err error) {
if value < -128 || value >= 128 { if value < -128 || value >= 128 {
return writer.Write([]byte{0xd1, byte(uint16(value) >> 8), byte(value)}) return writer.Write([]byte{0xd1, byte(uint16(value) >> 8), byte(value)})
} else if value < -32 { } else if value < -32 {
@ -81,7 +81,7 @@ func PackInt16(writer io.Writer, value int16) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackInt32(writer io.Writer, value int32) (n int, err os.Error) { func PackInt32(writer io.Writer, value int32) (n int, err error) {
if value < -32768 || value >= 32768 { if value < -32768 || value >= 32768 {
return writer.Write([]byte{0xd2, byte(uint32(value) >> 24), byte(uint32(value) >> 16), byte(uint32(value) >> 8), byte(value)}) return writer.Write([]byte{0xd2, byte(uint32(value) >> 24), byte(uint32(value) >> 16), byte(uint32(value) >> 8), byte(value)})
} else if value < -128 { } else if value < -128 {
@ -95,7 +95,7 @@ func PackInt32(writer io.Writer, value int32) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackInt64(writer io.Writer, value int64) (n int, err os.Error) { func PackInt64(writer io.Writer, value int64) (n int, err error) {
if value < -2147483648 || value >= 2147483648 { if value < -2147483648 || value >= 2147483648 {
return writer.Write([]byte{0xd3, byte(uint64(value) >> 56), byte(uint64(value) >> 48), byte(uint64(value) >> 40), byte(uint64(value) >> 32), byte(uint64(value) >> 24), byte(uint64(value) >> 16), byte(uint64(value) >> 8), byte(value)}) return writer.Write([]byte{0xd3, byte(uint64(value) >> 56), byte(uint64(value) >> 48), byte(uint64(value) >> 40), byte(uint64(value) >> 32), byte(uint64(value) >> 24), byte(uint64(value) >> 16), byte(uint64(value) >> 8), byte(value)})
} else if value < -32768 || value >= 32768 { } else if value < -32768 || value >= 32768 {
@ -109,7 +109,7 @@ func PackInt64(writer io.Writer, value int64) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackInt(writer io.Writer, value int) (n int, err os.Error) { func PackInt(writer io.Writer, value int) (n int, err error) {
switch unsafe.Sizeof(value) { switch unsafe.Sizeof(value) {
case 4: case 4:
return PackInt32(writer, *(*int32)(unsafe.Pointer(&value))) return PackInt32(writer, *(*int32)(unsafe.Pointer(&value)))
@ -120,12 +120,12 @@ func PackInt(writer io.Writer, value int) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackNil(writer io.Writer) (n int, err os.Error) { func PackNil(writer io.Writer) (n int, err error) {
return writer.Write([]byte{0xc0}) return writer.Write([]byte{0xc0})
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackBool(writer io.Writer, value bool) (n int, err os.Error) { func PackBool(writer io.Writer, value bool) (n int, err error) {
var code byte var code byte
if value { if value {
code = 0xc3 code = 0xc3
@ -136,17 +136,17 @@ func PackBool(writer io.Writer, value bool) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackFloat32(writer io.Writer, value float32) (n int, err os.Error) { func PackFloat32(writer io.Writer, value float32) (n int, err error) {
return PackUint32(writer, *(*uint32)(unsafe.Pointer(&value))) return PackUint32(writer, *(*uint32)(unsafe.Pointer(&value)))
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackFloat64(writer io.Writer, value float64) (n int, err os.Error) { func PackFloat64(writer io.Writer, value float64) (n int, err error) {
return PackUint64(writer, *(*uint64)(unsafe.Pointer(&value))) return PackUint64(writer, *(*uint64)(unsafe.Pointer(&value)))
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackBytes(writer io.Writer, value []byte) (n int, err os.Error) { func PackBytes(writer io.Writer, value []byte) (n int, err error) {
if len(value) < 32 { if len(value) < 32 {
n1, err := writer.Write([]byte{0xa0 | uint8(len(value))}) n1, err := writer.Write([]byte{0xa0 | uint8(len(value))})
if err != nil { if err != nil {
@ -171,7 +171,7 @@ func PackBytes(writer io.Writer, value []byte) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackUint16Array(writer io.Writer, value []uint16) (n int, err os.Error) { func PackUint16Array(writer io.Writer, value []uint16) (n int, err error) {
if len(value) < 16 { if len(value) < 16 {
n, err := writer.Write([]byte{0x90 | byte(len(value))}) n, err := writer.Write([]byte{0x90 | byte(len(value))})
if err != nil { if err != nil {
@ -213,7 +213,7 @@ func PackUint16Array(writer io.Writer, value []uint16) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackUint32Array(writer io.Writer, value []uint32) (n int, err os.Error) { func PackUint32Array(writer io.Writer, value []uint32) (n int, err error) {
if len(value) < 16 { if len(value) < 16 {
n, err := writer.Write([]byte{0x90 | byte(len(value))}) n, err := writer.Write([]byte{0x90 | byte(len(value))})
if err != nil { if err != nil {
@ -255,7 +255,7 @@ func PackUint32Array(writer io.Writer, value []uint32) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackUint64Array(writer io.Writer, value []uint64) (n int, err os.Error) { func PackUint64Array(writer io.Writer, value []uint64) (n int, err error) {
if len(value) < 16 { if len(value) < 16 {
n, err := writer.Write([]byte{0x90 | byte(len(value))}) n, err := writer.Write([]byte{0x90 | byte(len(value))})
if err != nil { if err != nil {
@ -297,7 +297,7 @@ func PackUint64Array(writer io.Writer, value []uint64) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackUintArray(writer io.Writer, value []uint) (n int, err os.Error) { func PackUintArray(writer io.Writer, value []uint) (n int, err error) {
switch unsafe.Sizeof(0) { switch unsafe.Sizeof(0) {
case 4: case 4:
return PackUint32Array(writer, *(*[]uint32)(unsafe.Pointer(&value))) return PackUint32Array(writer, *(*[]uint32)(unsafe.Pointer(&value)))
@ -308,7 +308,7 @@ func PackUintArray(writer io.Writer, value []uint) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackInt8Array(writer io.Writer, value []int8) (n int, err os.Error) { func PackInt8Array(writer io.Writer, value []int8) (n int, err error) {
if len(value) < 16 { if len(value) < 16 {
n, err := writer.Write([]byte{0x90 | byte(len(value))}) n, err := writer.Write([]byte{0x90 | byte(len(value))})
if err != nil { if err != nil {
@ -350,7 +350,7 @@ func PackInt8Array(writer io.Writer, value []int8) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackInt16Array(writer io.Writer, value []int16) (n int, err os.Error) { func PackInt16Array(writer io.Writer, value []int16) (n int, err error) {
if len(value) < 16 { if len(value) < 16 {
n, err := writer.Write([]byte{0x90 | byte(len(value))}) n, err := writer.Write([]byte{0x90 | byte(len(value))})
if err != nil { if err != nil {
@ -392,7 +392,7 @@ func PackInt16Array(writer io.Writer, value []int16) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackInt32Array(writer io.Writer, value []int32) (n int, err os.Error) { func PackInt32Array(writer io.Writer, value []int32) (n int, err error) {
if len(value) < 16 { if len(value) < 16 {
n, err := writer.Write([]byte{0x90 | byte(len(value))}) n, err := writer.Write([]byte{0x90 | byte(len(value))})
if err != nil { if err != nil {
@ -434,7 +434,7 @@ func PackInt32Array(writer io.Writer, value []int32) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackInt64Array(writer io.Writer, value []int64) (n int, err os.Error) { func PackInt64Array(writer io.Writer, value []int64) (n int, err error) {
if len(value) < 16 { if len(value) < 16 {
n, err := writer.Write([]byte{0x90 | byte(len(value))}) n, err := writer.Write([]byte{0x90 | byte(len(value))})
if err != nil { if err != nil {
@ -476,7 +476,7 @@ func PackInt64Array(writer io.Writer, value []int64) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackIntArray(writer io.Writer, value []int) (n int, err os.Error) { func PackIntArray(writer io.Writer, value []int) (n int, err error) {
switch unsafe.Sizeof(0) { switch unsafe.Sizeof(0) {
case 4: case 4:
return PackInt32Array(writer, *(*[]int32)(unsafe.Pointer(&value))) return PackInt32Array(writer, *(*[]int32)(unsafe.Pointer(&value)))
@ -487,7 +487,7 @@ func PackIntArray(writer io.Writer, value []int) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackFloat32Array(writer io.Writer, value []float32) (n int, err os.Error) { func PackFloat32Array(writer io.Writer, value []float32) (n int, err error) {
if len(value) < 16 { if len(value) < 16 {
n, err := writer.Write([]byte{0x90 | byte(len(value))}) n, err := writer.Write([]byte{0x90 | byte(len(value))})
if err != nil { if err != nil {
@ -529,7 +529,7 @@ func PackFloat32Array(writer io.Writer, value []float32) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackFloat64Array(writer io.Writer, value []float64) (n int, err os.Error) { func PackFloat64Array(writer io.Writer, value []float64) (n int, err error) {
if len(value) < 16 { if len(value) < 16 {
n, err := writer.Write([]byte{0x90 | byte(len(value))}) n, err := writer.Write([]byte{0x90 | byte(len(value))})
if err != nil { if err != nil {
@ -571,7 +571,7 @@ func PackFloat64Array(writer io.Writer, value []float64) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackArray(writer io.Writer, value reflect.Value) (n int, err os.Error) { func PackArray(writer io.Writer, value reflect.Value) (n int, err error) {
{ {
elemType := value.Type().Elem() elemType := value.Type().Elem()
if (elemType.Kind() == reflect.Uint || elemType.Kind() == reflect.Uint8 || elemType.Kind() == reflect.Uint16 || elemType.Kind() == reflect.Uint32 || elemType.Kind() == reflect.Uint64 || elemType.Kind() == reflect.Uintptr) && if (elemType.Kind() == reflect.Uint || elemType.Kind() == reflect.Uint8 || elemType.Kind() == reflect.Uint16 || elemType.Kind() == reflect.Uint32 || elemType.Kind() == reflect.Uint64 || elemType.Kind() == reflect.Uintptr) &&
@ -622,7 +622,7 @@ func PackArray(writer io.Writer, value reflect.Value) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackMap(writer io.Writer, value reflect.Value) (n int, err os.Error) { func PackMap(writer io.Writer, value reflect.Value) (n int, err error) {
keys := value.MapKeys() keys := value.MapKeys()
if value.Len() < 16 { if value.Len() < 16 {
n, err := writer.Write([]byte{0x80 | byte(len(keys))}) n, err := writer.Write([]byte{0x80 | byte(len(keys))})
@ -680,7 +680,7 @@ func PackMap(writer io.Writer, value reflect.Value) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func PackValue(writer io.Writer, value reflect.Value) (n int, err os.Error) { func PackValue(writer io.Writer, value reflect.Value) (n int, err error) {
if !value.IsValid() || value.Type() == nil { if !value.IsValid() || value.Type() == nil {
return PackNil(writer) return PackNil(writer)
} }
@ -710,7 +710,7 @@ func PackValue(writer io.Writer, value reflect.Value) (n int, err os.Error) {
} }
// Packs a given value and writes it into the specified writer. // Packs a given value and writes it into the specified writer.
func Pack(writer io.Writer, value interface{}) (n int, err os.Error) { func Pack(writer io.Writer, value interface{}) (n int, err error) {
if value == nil { if value == nil {
return PackNil(writer) return PackNil(writer)
} }

View File

@ -2,13 +2,12 @@ package msgpack
import ( import (
"io" "io"
"os"
"unsafe"
"strconv"
"reflect" "reflect"
"strconv"
"unsafe"
) )
func readByte(reader io.Reader) (v uint8, err os.Error) { func readByte(reader io.Reader) (v uint8, err error) {
data := [1]byte{} data := [1]byte{}
_, e := reader.Read(data[0:]) _, e := reader.Read(data[0:])
if e != nil { if e != nil {
@ -17,7 +16,7 @@ func readByte(reader io.Reader) (v uint8, err os.Error) {
return data[0], nil return data[0], nil
} }
func readUint16(reader io.Reader) (v uint16, n int, err os.Error) { func readUint16(reader io.Reader) (v uint16, n int, err error) {
data := [2]byte{} data := [2]byte{}
n, e := reader.Read(data[0:]) n, e := reader.Read(data[0:])
if e != nil { if e != nil {
@ -26,7 +25,7 @@ func readUint16(reader io.Reader) (v uint16, n int, err os.Error) {
return (uint16(data[0]) << 8) | uint16(data[1]), n, nil return (uint16(data[0]) << 8) | uint16(data[1]), n, nil
} }
func readUint32(reader io.Reader) (v uint32, n int, err os.Error) { func readUint32(reader io.Reader) (v uint32, n int, err error) {
data := [4]byte{} data := [4]byte{}
n, e := reader.Read(data[0:]) n, e := reader.Read(data[0:])
if e != nil { if e != nil {
@ -35,7 +34,7 @@ func readUint32(reader io.Reader) (v uint32, n int, err os.Error) {
return (uint32(data[0]) << 24) | (uint32(data[1]) << 16) | (uint32(data[2]) << 8) | uint32(data[3]), n, nil return (uint32(data[0]) << 24) | (uint32(data[1]) << 16) | (uint32(data[2]) << 8) | uint32(data[3]), n, nil
} }
func readUint64(reader io.Reader) (v uint64, n int, err os.Error) { func readUint64(reader io.Reader) (v uint64, n int, err error) {
data := [8]byte{} data := [8]byte{}
n, e := reader.Read(data[0:]) n, e := reader.Read(data[0:])
if e != nil { if e != nil {
@ -44,7 +43,7 @@ func readUint64(reader io.Reader) (v uint64, n int, err os.Error) {
return (uint64(data[0]) << 56) | (uint64(data[1]) << 48) | (uint64(data[2]) << 40) | (uint64(data[3]) << 32) | (uint64(data[4]) << 24) | (uint64(data[5]) << 16) | (uint64(data[6]) << 8) | uint64(data[7]), n, nil return (uint64(data[0]) << 56) | (uint64(data[1]) << 48) | (uint64(data[2]) << 40) | (uint64(data[3]) << 32) | (uint64(data[4]) << 24) | (uint64(data[5]) << 16) | (uint64(data[6]) << 8) | uint64(data[7]), n, nil
} }
func readInt16(reader io.Reader) (v int16, n int, err os.Error) { func readInt16(reader io.Reader) (v int16, n int, err error) {
data := [2]byte{} data := [2]byte{}
n, e := reader.Read(data[0:]) n, e := reader.Read(data[0:])
if e != nil { if e != nil {
@ -53,7 +52,7 @@ func readInt16(reader io.Reader) (v int16, n int, err os.Error) {
return (int16(data[0]) << 8) | int16(data[1]), n, nil return (int16(data[0]) << 8) | int16(data[1]), n, nil
} }
func readInt32(reader io.Reader) (v int32, n int, err os.Error) { func readInt32(reader io.Reader) (v int32, n int, err error) {
data := [4]byte{} data := [4]byte{}
n, e := reader.Read(data[0:]) n, e := reader.Read(data[0:])
if e != nil { if e != nil {
@ -62,7 +61,7 @@ func readInt32(reader io.Reader) (v int32, n int, err os.Error) {
return (int32(data[0]) << 24) | (int32(data[1]) << 16) | (int32(data[2]) << 8) | int32(data[3]), n, nil return (int32(data[0]) << 24) | (int32(data[1]) << 16) | (int32(data[2]) << 8) | int32(data[3]), n, nil
} }
func readInt64(reader io.Reader) (v int64, n int, err os.Error) { func readInt64(reader io.Reader) (v int64, n int, err error) {
data := [8]byte{} data := [8]byte{}
n, e := reader.Read(data[0:]) n, e := reader.Read(data[0:])
if e != nil { if e != nil {
@ -71,7 +70,7 @@ func readInt64(reader io.Reader) (v int64, n int, err os.Error) {
return (int64(data[0]) << 56) | (int64(data[1]) << 48) | (int64(data[2]) << 40) | (int64(data[3]) << 32) | (int64(data[4]) << 24) | (int64(data[5]) << 16) | (int64(data[6]) << 8) | int64(data[7]), n, nil return (int64(data[0]) << 56) | (int64(data[1]) << 48) | (int64(data[2]) << 40) | (int64(data[3]) << 32) | (int64(data[4]) << 24) | (int64(data[5]) << 16) | (int64(data[6]) << 8) | int64(data[7]), n, nil
} }
func unpackArray(reader io.Reader, nelems uint) (v reflect.Value, n int, err os.Error) { func unpackArray(reader io.Reader, nelems uint) (v reflect.Value, n int, err error) {
retval := make([]interface{}, nelems) retval := make([]interface{}, nelems)
nbytesread := 0 nbytesread := 0
var i uint var i uint
@ -86,7 +85,7 @@ func unpackArray(reader io.Reader, nelems uint) (v reflect.Value, n int, err os.
return reflect.ValueOf(retval), nbytesread, nil return reflect.ValueOf(retval), nbytesread, nil
} }
func unpackArrayReflected(reader io.Reader, nelems uint) (v reflect.Value, n int, err os.Error) { func unpackArrayReflected(reader io.Reader, nelems uint) (v reflect.Value, n int, err error) {
retval := make([]reflect.Value, nelems) retval := make([]reflect.Value, nelems)
nbytesread := 0 nbytesread := 0
var i uint var i uint
@ -101,7 +100,7 @@ func unpackArrayReflected(reader io.Reader, nelems uint) (v reflect.Value, n int
return reflect.ValueOf(retval), nbytesread, nil return reflect.ValueOf(retval), nbytesread, nil
} }
func unpackMap(reader io.Reader, nelems uint) (v reflect.Value, n int, err os.Error) { func unpackMap(reader io.Reader, nelems uint) (v reflect.Value, n int, err error) {
retval := make(map[interface{}]interface{}) retval := make(map[interface{}]interface{})
nbytesread := 0 nbytesread := 0
var i uint var i uint
@ -121,7 +120,7 @@ func unpackMap(reader io.Reader, nelems uint) (v reflect.Value, n int, err os.Er
return reflect.ValueOf(retval), nbytesread, nil return reflect.ValueOf(retval), nbytesread, nil
} }
func unpackMapReflected(reader io.Reader, nelems uint) (v reflect.Value, n int, err os.Error) { func unpackMapReflected(reader io.Reader, nelems uint) (v reflect.Value, n int, err error) {
retval := make(map[interface{}]reflect.Value) retval := make(map[interface{}]reflect.Value)
nbytesread := 0 nbytesread := 0
var i uint var i uint
@ -141,7 +140,7 @@ func unpackMapReflected(reader io.Reader, nelems uint) (v reflect.Value, n int,
return reflect.ValueOf(retval), nbytesread, nil return reflect.ValueOf(retval), nbytesread, nil
} }
func unpack(reader io.Reader, reflected bool) (v reflect.Value, n int, err os.Error) { func unpack(reader io.Reader, reflected bool) (v reflect.Value, n int, err error) {
var retval reflect.Value var retval reflect.Value
var nbytesread int = 0 var nbytesread int = 0
@ -354,13 +353,13 @@ func unpack(reader io.Reader, reflected bool) (v reflect.Value, n int, err os.Er
} }
// Reads a value from the reader, unpack and returns it. // Reads a value from the reader, unpack and returns it.
func Unpack(reader io.Reader) (v reflect.Value, n int, err os.Error) { func Unpack(reader io.Reader) (v reflect.Value, n int, err error) {
return unpack(reader, false) return unpack(reader, false)
} }
// Reads unpack a value from the reader, unpack and returns it. When the // Reads unpack a value from the reader, unpack and returns it. When the
// value is an array or map, leaves the elements wrapped by corresponding // value is an array or map, leaves the elements wrapped by corresponding
// wrapper objects defined in reflect package. // wrapper objects defined in reflect package.
func UnpackReflected(reader io.Reader) (v reflect.Value, n int, err os.Error) { func UnpackReflected(reader io.Reader) (v reflect.Value, n int, err error) {
return unpack(reader, true) return unpack(reader, true)
} }