@@ -19,11 +19,11 @@ func newInterfaceDecoder(typ *rtype) *interfaceDecoder {
19
19
func (d * interfaceDecoder ) numDecoder (s * stream ) decoder {
20
20
if s .useNumber {
21
21
return newNumberDecoder (func (p uintptr , v Number ) {
22
- * ( * interface {})(unsafe .Pointer (p )) = v
22
+ * * ( * * interface {})(unsafe .Pointer (& p )) = v
23
23
})
24
24
}
25
25
return newFloatDecoder (func (p uintptr , v float64 ) {
26
- * ( * interface {})(unsafe .Pointer (p )) = v
26
+ * * ( * * interface {})(unsafe .Pointer (& p )) = v
27
27
})
28
28
}
29
29
@@ -48,7 +48,7 @@ func (d *interfaceDecoder) decodeStream(s *stream, p uintptr) error {
48
48
).decodeStream (s , uintptr (ptr )); err != nil {
49
49
return err
50
50
}
51
- * ( * interface {})(unsafe .Pointer (p )) = v
51
+ * * ( * * interface {})(unsafe .Pointer (& p )) = v
52
52
return nil
53
53
case '[' :
54
54
var v []interface {}
@@ -61,7 +61,7 @@ func (d *interfaceDecoder) decodeStream(s *stream, p uintptr) error {
61
61
).decodeStream (s , uintptr (ptr )); err != nil {
62
62
return err
63
63
}
64
- * ( * interface {})(unsafe .Pointer (p )) = v
64
+ * * ( * * interface {})(unsafe .Pointer (& p )) = v
65
65
return nil
66
66
case '-' , '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' :
67
67
return d .numDecoder (s ).decodeStream (s , p )
@@ -77,7 +77,7 @@ func (d *interfaceDecoder) decodeStream(s *stream, p uintptr) error {
77
77
case '"' :
78
78
literal := s .buf [start :s .cursor ]
79
79
s .cursor ++
80
- * ( * interface {})(unsafe .Pointer (p )) = * (* string )(unsafe .Pointer (& literal ))
80
+ * * ( * * interface {})(unsafe .Pointer (& p )) = * (* string )(unsafe .Pointer (& literal ))
81
81
return nil
82
82
case nul :
83
83
if s .read () {
@@ -92,19 +92,19 @@ func (d *interfaceDecoder) decodeStream(s *stream, p uintptr) error {
92
92
if err := trueBytes (s ); err != nil {
93
93
return err
94
94
}
95
- * ( * interface {})(unsafe .Pointer (p )) = true
95
+ * * ( * * interface {})(unsafe .Pointer (& p )) = true
96
96
return nil
97
97
case 'f' :
98
98
if err := falseBytes (s ); err != nil {
99
99
return err
100
100
}
101
- * ( * interface {})(unsafe .Pointer (p )) = false
101
+ * * ( * * interface {})(unsafe .Pointer (& p )) = false
102
102
return nil
103
103
case 'n' :
104
104
if err := nullBytes (s ); err != nil {
105
105
return err
106
106
}
107
- * ( * interface {})(unsafe .Pointer (p )) = nil
107
+ * * ( * * interface {})(unsafe .Pointer (& p )) = nil
108
108
return nil
109
109
case nul :
110
110
if s .read () {
@@ -132,7 +132,7 @@ func (d *interfaceDecoder) decode(buf []byte, cursor int64, p uintptr) (int64, e
132
132
if err != nil {
133
133
return 0 , err
134
134
}
135
- * ( * interface {})(unsafe .Pointer (p )) = v
135
+ * * ( * * interface {})(unsafe .Pointer (& p )) = v
136
136
return cursor , nil
137
137
case '[' :
138
138
var v []interface {}
@@ -147,11 +147,11 @@ func (d *interfaceDecoder) decode(buf []byte, cursor int64, p uintptr) (int64, e
147
147
if err != nil {
148
148
return 0 , err
149
149
}
150
- * ( * interface {})(unsafe .Pointer (p )) = v
150
+ * * ( * * interface {})(unsafe .Pointer (& p )) = v
151
151
return cursor , nil
152
152
case '-' , '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' :
153
153
return newFloatDecoder (func (p uintptr , v float64 ) {
154
- * ( * interface {})(unsafe .Pointer (p )) = v
154
+ * * ( * * interface {})(unsafe .Pointer (& p )) = v
155
155
}).decode (buf , cursor , p )
156
156
case '"' :
157
157
cursor ++
@@ -163,7 +163,7 @@ func (d *interfaceDecoder) decode(buf []byte, cursor int64, p uintptr) (int64, e
163
163
case '"' :
164
164
literal := buf [start :cursor ]
165
165
cursor ++
166
- * ( * interface {})(unsafe .Pointer (p )) = * (* string )(unsafe .Pointer (& literal ))
166
+ * * ( * * interface {})(unsafe .Pointer (& p )) = * (* string )(unsafe .Pointer (& literal ))
167
167
return cursor , nil
168
168
case nul :
169
169
return 0 , errUnexpectedEndOfJSON ("string" , cursor )
@@ -185,7 +185,7 @@ func (d *interfaceDecoder) decode(buf []byte, cursor int64, p uintptr) (int64, e
185
185
return 0 , errInvalidCharacter (buf [cursor + 3 ], "bool(true)" , cursor )
186
186
}
187
187
cursor += 4
188
- * ( * interface {})(unsafe .Pointer (p )) = true
188
+ * * ( * * interface {})(unsafe .Pointer (& p )) = true
189
189
return cursor , nil
190
190
case 'f' :
191
191
if cursor + 4 >= int64 (len (buf )) {
@@ -204,7 +204,7 @@ func (d *interfaceDecoder) decode(buf []byte, cursor int64, p uintptr) (int64, e
204
204
return 0 , errInvalidCharacter (buf [cursor + 4 ], "bool(false)" , cursor )
205
205
}
206
206
cursor += 5
207
- * ( * interface {})(unsafe .Pointer (p )) = false
207
+ * * ( * * interface {})(unsafe .Pointer (& p )) = false
208
208
return cursor , nil
209
209
case 'n' :
210
210
if cursor + 3 >= int64 (len (buf )) {
@@ -220,7 +220,7 @@ func (d *interfaceDecoder) decode(buf []byte, cursor int64, p uintptr) (int64, e
220
220
return 0 , errInvalidCharacter (buf [cursor + 3 ], "null" , cursor )
221
221
}
222
222
cursor += 4
223
- * ( * interface {})(unsafe .Pointer (p )) = nil
223
+ * * ( * * interface {})(unsafe .Pointer (& p )) = nil
224
224
return cursor , nil
225
225
}
226
226
return cursor , errNotAtBeginningOfValue (cursor )
0 commit comments