Skip to content

Commit b2b6a67

Browse files
Karrick McDermottphilhofer
authored andcommitted
fix panic when reflecting on maps (#181)
``` package main //go:generate msgp import ( "bytes" "fmt" "os" "github.com/tinylib/msgp/msgp" ) type Feedback map[string]interface{} func main() { deepMap := make(map[string]map[string]string) feedback := Feedback{"general": deepMap} bb := new(bytes.Buffer) if err := msgp.Encode(bb, feedback); err != nil { fmt.Fprintf(os.Stderr, "%s\n", err) os.Exit(1) } fmt.Printf("%#v\n", bb.Bytes()) } // 1. Type `go generate main.go`. // 2. Type `go run main.go main_gen.go`. ```
1 parent 02d047e commit b2b6a67

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

msgp/write.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,7 @@ func (mw *Writer) WriteIntf(v interface{}) error {
689689
}
690690

691691
func (mw *Writer) writeMap(v reflect.Value) (err error) {
692-
if v.Elem().Kind() != reflect.String {
692+
if v.Type().Key().Kind() != reflect.String {
693693
return errors.New("msgp: map keys must be strings")
694694
}
695695
ks := v.MapKeys()

0 commit comments

Comments
 (0)