mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-03-19 13:02:13 +01:00
fix error for go1 compatiblity
This commit is contained in:
parent
3399148d75
commit
36fef91a67
62
go/pack.go
62
go/pack.go
@ -3,12 +3,12 @@ package msgpack
|
||||
import (
|
||||
"io"
|
||||
"os"
|
||||
"unsafe"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
// 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 {
|
||||
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.
|
||||
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 {
|
||||
return writer.Write([]byte{byte(value)})
|
||||
} 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.
|
||||
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 {
|
||||
return writer.Write([]byte{byte(value)})
|
||||
} 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.
|
||||
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 {
|
||||
return writer.Write([]byte{byte(value)})
|
||||
} 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)})
|
||||
}
|
||||
|
||||
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.
|
||||
switch unsafe.Sizeof(value) {
|
||||
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.
|
||||
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 {
|
||||
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.
|
||||
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 {
|
||||
return writer.Write([]byte{0xd1, byte(uint16(value) >> 8), byte(value)})
|
||||
} 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.
|
||||
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 {
|
||||
return writer.Write([]byte{0xd2, byte(uint32(value) >> 24), byte(uint32(value) >> 16), byte(uint32(value) >> 8), byte(value)})
|
||||
} 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.
|
||||
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 {
|
||||
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 {
|
||||
@ -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.
|
||||
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) {
|
||||
case 4:
|
||||
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.
|
||||
func PackNil(writer io.Writer) (n int, err os.Error) {
|
||||
func PackNil(writer io.Writer) (n int, err error) {
|
||||
return writer.Write([]byte{0xc0})
|
||||
}
|
||||
|
||||
// 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
|
||||
if value {
|
||||
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.
|
||||
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)))
|
||||
}
|
||||
|
||||
// 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)))
|
||||
}
|
||||
|
||||
// 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 {
|
||||
n1, err := writer.Write([]byte{0xa0 | uint8(len(value))})
|
||||
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.
|
||||
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 {
|
||||
n, err := writer.Write([]byte{0x90 | byte(len(value))})
|
||||
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.
|
||||
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 {
|
||||
n, err := writer.Write([]byte{0x90 | byte(len(value))})
|
||||
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.
|
||||
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 {
|
||||
n, err := writer.Write([]byte{0x90 | byte(len(value))})
|
||||
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.
|
||||
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) {
|
||||
case 4:
|
||||
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.
|
||||
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 {
|
||||
n, err := writer.Write([]byte{0x90 | byte(len(value))})
|
||||
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.
|
||||
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 {
|
||||
n, err := writer.Write([]byte{0x90 | byte(len(value))})
|
||||
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.
|
||||
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 {
|
||||
n, err := writer.Write([]byte{0x90 | byte(len(value))})
|
||||
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.
|
||||
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 {
|
||||
n, err := writer.Write([]byte{0x90 | byte(len(value))})
|
||||
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.
|
||||
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) {
|
||||
case 4:
|
||||
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.
|
||||
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 {
|
||||
n, err := writer.Write([]byte{0x90 | byte(len(value))})
|
||||
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.
|
||||
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 {
|
||||
n, err := writer.Write([]byte{0x90 | byte(len(value))})
|
||||
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.
|
||||
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()
|
||||
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.
|
||||
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()
|
||||
if value.Len() < 16 {
|
||||
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.
|
||||
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 {
|
||||
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.
|
||||
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 {
|
||||
return PackNil(writer)
|
||||
}
|
||||
|
33
go/unpack.go
33
go/unpack.go
@ -2,13 +2,12 @@ package msgpack
|
||||
|
||||
import (
|
||||
"io"
|
||||
"os"
|
||||
"unsafe"
|
||||
"strconv"
|
||||
"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{}
|
||||
_, e := reader.Read(data[0:])
|
||||
if e != nil {
|
||||
@ -17,7 +16,7 @@ func readByte(reader io.Reader) (v uint8, err os.Error) {
|
||||
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{}
|
||||
n, e := reader.Read(data[0:])
|
||||
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
|
||||
}
|
||||
|
||||
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{}
|
||||
n, e := reader.Read(data[0:])
|
||||
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
|
||||
}
|
||||
|
||||
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{}
|
||||
n, e := reader.Read(data[0:])
|
||||
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
|
||||
}
|
||||
|
||||
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{}
|
||||
n, e := reader.Read(data[0:])
|
||||
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
|
||||
}
|
||||
|
||||
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{}
|
||||
n, e := reader.Read(data[0:])
|
||||
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
|
||||
}
|
||||
|
||||
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{}
|
||||
n, e := reader.Read(data[0:])
|
||||
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
|
||||
}
|
||||
|
||||
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)
|
||||
nbytesread := 0
|
||||
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
|
||||
}
|
||||
|
||||
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)
|
||||
nbytesread := 0
|
||||
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
|
||||
}
|
||||
|
||||
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{})
|
||||
nbytesread := 0
|
||||
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
|
||||
}
|
||||
|
||||
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)
|
||||
nbytesread := 0
|
||||
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
|
||||
}
|
||||
|
||||
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 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.
|
||||
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)
|
||||
}
|
||||
|
||||
// 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
|
||||
// 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)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user