Skip to content

Commit 597f93b

Browse files
Dean KarnDean Karn
authored andcommitted
Merge branch 'correct-error-order' into v9
2 parents 493dfb6 + 4e43fa1 commit 597f93b

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Package validator
22
================
33
<img align="right" src="https://raw.githubusercontent.com/go-playground/validator/v9/logo.png">
44
[![Join the chat at https://gitter.im/go-playground/validator](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-playground/validator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5-
![Project status](https://img.shields.io/badge/version-9.2.1-green.svg)
5+
![Project status](https://img.shields.io/badge/version-9.2.2-green.svg)
66
[![Build Status](https://semaphoreci.com/api/v1/joeybloggs/validator/branches/v9/badge.svg)](https://semaphoreci.com/joeybloggs/validator)
77
[![Coverage Status](https://coveralls.io/repos/go-playground/validator/badge.svg?branch=v9&service=github)](https://coveralls.io/github/go-playground/validator?branch=v9)
88
[![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/validator)](https://goreportcard.com/report/github.com/go-playground/validator)

cache.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func (tc *tagCache) Set(key string, value *cTag) {
7070

7171
type cStruct struct {
7272
name string
73-
fields map[int]*cField
73+
fields []*cField
7474
fn StructLevelFunc
7575
}
7676

@@ -108,7 +108,7 @@ func (v *Validate) extractStructCache(current reflect.Value, sName string) *cStr
108108
return cs
109109
}
110110

111-
cs = &cStruct{name: sName, fields: make(map[int]*cField), fn: v.structLevelFuncs[typ]}
111+
cs = &cStruct{name: sName, fields: make([]*cField, 0), fn: v.structLevelFuncs[typ]}
112112

113113
numFields := current.NumField()
114114

@@ -153,13 +153,13 @@ func (v *Validate) extractStructCache(current reflect.Value, sName string) *cStr
153153
ctag = new(cTag)
154154
}
155155

156-
cs.fields[i] = &cField{
156+
cs.fields = append(cs.fields, &cField{
157157
idx: i,
158158
name: fld.Name,
159159
altName: customName,
160160
cTags: ctag,
161161
namesEqual: fld.Name == customName,
162-
}
162+
})
163163
}
164164

165165
v.structCache.Set(typ, cs)

validator.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,11 @@ func (v *validate) validateStruct(parent reflect.Value, current reflect.Value, t
5353
// so if nil or if not nil and the structonly tag isn't present
5454
if ct == nil || ct.typeof != typeStructOnly {
5555

56-
for _, f := range cs.fields {
56+
var f *cField
57+
58+
for i := 0; i < len(cs.fields); i++ {
59+
60+
f = cs.fields[i]
5761

5862
if v.isPartial {
5963

0 commit comments

Comments
 (0)