Byte arrays in Go should not be serialized as arrays.

This commit is contained in:
moriyoshi 2010-06-27 01:39:04 +09:00 committed by Moriyoshi Koizumi
parent 0e82278cd5
commit 003fb3392f

View File

@ -452,6 +452,13 @@ func PackFloatArray(writer io.Writer, value []float) (n int, err os.Error) {
} }
func PackArray(writer io.Writer, value reflect.ArrayOrSliceValue) (n int, err os.Error) { func PackArray(writer io.Writer, value reflect.ArrayOrSliceValue) (n int, err os.Error) {
{
elemType, ok := value.Type().(reflect.ArrayOrSliceType).Elem().(*reflect.UintType)
if ok && elemType.Kind() == reflect.Uint8 {
return PackBytes(writer, value.Interface().([]byte))
}
}
l := value.Len() l := value.Len()
if l < 16 { if l < 16 {
n, err := writer.Write([]byte { 0x90 | byte(l) }) n, err := writer.Write([]byte { 0x90 | byte(l) })