@@ -2,10 +2,11 @@ package jsoniter
22
33import (
44 "fmt"
5- "github.com/modern-go/reflect2"
65 "io"
76 "strings"
87 "unsafe"
8+
9+ "github.com/modern-go/reflect2"
910)
1011
1112func decoderOfStruct (ctx * ctx , typ reflect2.Type ) ValDecoder {
@@ -51,7 +52,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
5152 return & skipObjectDecoder {typ }
5253 case 1 :
5354 for fieldName , fieldDecoder := range fields {
54- fieldHash := calcHash (fieldName )
55+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
5556 _ , known := knownHash [fieldHash ]
5657 if known {
5758 return & generalStructDecoder {typ , fields , false }
@@ -65,7 +66,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
6566 var fieldDecoder1 * structFieldDecoder
6667 var fieldDecoder2 * structFieldDecoder
6768 for fieldName , fieldDecoder := range fields {
68- fieldHash := calcHash (fieldName )
69+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
6970 _ , known := knownHash [fieldHash ]
7071 if known {
7172 return & generalStructDecoder {typ , fields , false }
@@ -88,7 +89,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
8889 var fieldDecoder2 * structFieldDecoder
8990 var fieldDecoder3 * structFieldDecoder
9091 for fieldName , fieldDecoder := range fields {
91- fieldHash := calcHash (fieldName )
92+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
9293 _ , known := knownHash [fieldHash ]
9394 if known {
9495 return & generalStructDecoder {typ , fields , false }
@@ -119,7 +120,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
119120 var fieldDecoder3 * structFieldDecoder
120121 var fieldDecoder4 * structFieldDecoder
121122 for fieldName , fieldDecoder := range fields {
122- fieldHash := calcHash (fieldName )
123+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
123124 _ , known := knownHash [fieldHash ]
124125 if known {
125126 return & generalStructDecoder {typ , fields , false }
@@ -156,7 +157,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
156157 var fieldDecoder4 * structFieldDecoder
157158 var fieldDecoder5 * structFieldDecoder
158159 for fieldName , fieldDecoder := range fields {
159- fieldHash := calcHash (fieldName )
160+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
160161 _ , known := knownHash [fieldHash ]
161162 if known {
162163 return & generalStructDecoder {typ , fields , false }
@@ -199,7 +200,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
199200 var fieldDecoder5 * structFieldDecoder
200201 var fieldDecoder6 * structFieldDecoder
201202 for fieldName , fieldDecoder := range fields {
202- fieldHash := calcHash (fieldName )
203+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
203204 _ , known := knownHash [fieldHash ]
204205 if known {
205206 return & generalStructDecoder {typ , fields , false }
@@ -248,7 +249,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
248249 var fieldDecoder6 * structFieldDecoder
249250 var fieldDecoder7 * structFieldDecoder
250251 for fieldName , fieldDecoder := range fields {
251- fieldHash := calcHash (fieldName )
252+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
252253 _ , known := knownHash [fieldHash ]
253254 if known {
254255 return & generalStructDecoder {typ , fields , false }
@@ -303,7 +304,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
303304 var fieldDecoder7 * structFieldDecoder
304305 var fieldDecoder8 * structFieldDecoder
305306 for fieldName , fieldDecoder := range fields {
306- fieldHash := calcHash (fieldName )
307+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
307308 _ , known := knownHash [fieldHash ]
308309 if known {
309310 return & generalStructDecoder {typ , fields , false }
@@ -364,7 +365,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
364365 var fieldDecoder8 * structFieldDecoder
365366 var fieldDecoder9 * structFieldDecoder
366367 for fieldName , fieldDecoder := range fields {
367- fieldHash := calcHash (fieldName )
368+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
368369 _ , known := knownHash [fieldHash ]
369370 if known {
370371 return & generalStructDecoder {typ , fields , false }
@@ -431,7 +432,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
431432 var fieldDecoder9 * structFieldDecoder
432433 var fieldDecoder10 * structFieldDecoder
433434 for fieldName , fieldDecoder := range fields {
434- fieldHash := calcHash (fieldName )
435+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
435436 _ , known := knownHash [fieldHash ]
436437 if known {
437438 return & generalStructDecoder {typ , fields , false }
0 commit comments