@@ -2,10 +2,11 @@ package jsoniter
2
2
3
3
import (
4
4
"fmt"
5
- "github.com/modern-go/reflect2"
6
5
"io"
7
6
"strings"
8
7
"unsafe"
8
+
9
+ "github.com/modern-go/reflect2"
9
10
)
10
11
11
12
func decoderOfStruct (ctx * ctx , typ reflect2.Type ) ValDecoder {
@@ -51,7 +52,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
51
52
return & skipObjectDecoder {typ }
52
53
case 1 :
53
54
for fieldName , fieldDecoder := range fields {
54
- fieldHash := calcHash (fieldName )
55
+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
55
56
_ , known := knownHash [fieldHash ]
56
57
if known {
57
58
return & generalStructDecoder {typ , fields , false }
@@ -65,7 +66,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
65
66
var fieldDecoder1 * structFieldDecoder
66
67
var fieldDecoder2 * structFieldDecoder
67
68
for fieldName , fieldDecoder := range fields {
68
- fieldHash := calcHash (fieldName )
69
+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
69
70
_ , known := knownHash [fieldHash ]
70
71
if known {
71
72
return & generalStructDecoder {typ , fields , false }
@@ -88,7 +89,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
88
89
var fieldDecoder2 * structFieldDecoder
89
90
var fieldDecoder3 * structFieldDecoder
90
91
for fieldName , fieldDecoder := range fields {
91
- fieldHash := calcHash (fieldName )
92
+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
92
93
_ , known := knownHash [fieldHash ]
93
94
if known {
94
95
return & generalStructDecoder {typ , fields , false }
@@ -119,7 +120,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
119
120
var fieldDecoder3 * structFieldDecoder
120
121
var fieldDecoder4 * structFieldDecoder
121
122
for fieldName , fieldDecoder := range fields {
122
- fieldHash := calcHash (fieldName )
123
+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
123
124
_ , known := knownHash [fieldHash ]
124
125
if known {
125
126
return & generalStructDecoder {typ , fields , false }
@@ -156,7 +157,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
156
157
var fieldDecoder4 * structFieldDecoder
157
158
var fieldDecoder5 * structFieldDecoder
158
159
for fieldName , fieldDecoder := range fields {
159
- fieldHash := calcHash (fieldName )
160
+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
160
161
_ , known := knownHash [fieldHash ]
161
162
if known {
162
163
return & generalStructDecoder {typ , fields , false }
@@ -199,7 +200,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
199
200
var fieldDecoder5 * structFieldDecoder
200
201
var fieldDecoder6 * structFieldDecoder
201
202
for fieldName , fieldDecoder := range fields {
202
- fieldHash := calcHash (fieldName )
203
+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
203
204
_ , known := knownHash [fieldHash ]
204
205
if known {
205
206
return & generalStructDecoder {typ , fields , false }
@@ -248,7 +249,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
248
249
var fieldDecoder6 * structFieldDecoder
249
250
var fieldDecoder7 * structFieldDecoder
250
251
for fieldName , fieldDecoder := range fields {
251
- fieldHash := calcHash (fieldName )
252
+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
252
253
_ , known := knownHash [fieldHash ]
253
254
if known {
254
255
return & generalStructDecoder {typ , fields , false }
@@ -303,7 +304,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
303
304
var fieldDecoder7 * structFieldDecoder
304
305
var fieldDecoder8 * structFieldDecoder
305
306
for fieldName , fieldDecoder := range fields {
306
- fieldHash := calcHash (fieldName )
307
+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
307
308
_ , known := knownHash [fieldHash ]
308
309
if known {
309
310
return & generalStructDecoder {typ , fields , false }
@@ -364,7 +365,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
364
365
var fieldDecoder8 * structFieldDecoder
365
366
var fieldDecoder9 * structFieldDecoder
366
367
for fieldName , fieldDecoder := range fields {
367
- fieldHash := calcHash (fieldName )
368
+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
368
369
_ , known := knownHash [fieldHash ]
369
370
if known {
370
371
return & generalStructDecoder {typ , fields , false }
@@ -431,7 +432,7 @@ func createStructDecoder(ctx *ctx, typ reflect2.Type, fields map[string]*structF
431
432
var fieldDecoder9 * structFieldDecoder
432
433
var fieldDecoder10 * structFieldDecoder
433
434
for fieldName , fieldDecoder := range fields {
434
- fieldHash := calcHash (fieldName )
435
+ fieldHash := calcHash (fieldName , ctx . caseSensitive () )
435
436
_ , known := knownHash [fieldHash ]
436
437
if known {
437
438
return & generalStructDecoder {typ , fields , false }
0 commit comments