From 003fb3392fc749131f1904e53bf1aeafcbb4ca29 Mon Sep 17 00:00:00 2001 From: moriyoshi Date: Sun, 27 Jun 2010 01:39:04 +0900 Subject: [PATCH] Byte arrays in Go should not be serialized as arrays. --- go/pack.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/go/pack.go b/go/pack.go index 602f48ac..f23652e3 100644 --- a/go/pack.go +++ b/go/pack.go @@ -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) { + { + elemType, ok := value.Type().(reflect.ArrayOrSliceType).Elem().(*reflect.UintType) + if ok && elemType.Kind() == reflect.Uint8 { + return PackBytes(writer, value.Interface().([]byte)) + } + } + l := value.Len() if l < 16 { n, err := writer.Write([]byte { 0x90 | byte(l) })