diff --git a/marshal.go b/marshal.go index 6c13a8b69..f256aa8a9 100644 --- a/marshal.go +++ b/marshal.go @@ -1478,15 +1478,16 @@ func marshalMap(info TypeInfo, value interface{}) ([]byte, error) { } rv := reflect.ValueOf(value) - if rv.IsNil() { - return nil, nil - } t := rv.Type() if t.Kind() != reflect.Map { return nil, marshalErrorf("can not marshal %T into %s", value, info) } + if rv.IsNil() { + return nil, nil + } + buf := &bytes.Buffer{} n := rv.Len()