From 2cc1f136b1375d20aff0ca5429d69af4b0597939 Mon Sep 17 00:00:00 2001 From: Alex Flint Date: Fri, 24 Jan 2020 14:34:56 -0800 Subject: [PATCH] make sure to deep copy the field indices --- parse.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/parse.go b/parse.go index 3fc82bd..3370c31 100644 --- a/parse.go +++ b/parse.go @@ -159,7 +159,8 @@ func walkFields(t reflect.Type, visit func(field reflect.StructField, owner refl func walkFieldsImpl(t reflect.Type, visit func(field reflect.StructField, owner reflect.Type) bool, path []int) { for i := 0; i < t.NumField(); i++ { field := t.Field(i) - field.Index = append(path, i) + field.Index = make([]int, len(path)+1) + copy(field.Index, append(path, i)) expand := visit(field, t) if expand && field.Type.Kind() == reflect.Struct { var subpath []int