Commit 9f6e596
committed
Improve stdlib compatibility
1. Null values for primitive types no longer clear the original value in
the destination object.
2. Dereference multiple levels of pointers in the destination interface{}
type before unmarshaling into it. This is needed to match stdlib
behavior when working with nested interface{} fields. If the destination
object is a pointer to interface{} then the incoming nil value should
nil out the destination object but keep the reference to that nil value
on its parent object. However if the destination object is an
interface{} value it should set the reference to nil but keep the
original object intact.
3. Correctly handle typed nil decode destinations.1 parent c463aa1 commit 9f6e596
File tree
3 files changed
+210
-57
lines changed3 files changed
+210
-57
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
36 | | - | |
37 | | - | |
| 35 | + | |
| 36 | + | |
38 | 37 | | |
39 | | - | |
40 | 38 | | |
41 | 39 | | |
42 | 40 | | |
| |||
55 | 53 | | |
56 | 54 | | |
57 | 55 | | |
58 | | - | |
59 | | - | |
60 | | - | |
| 56 | + | |
| 57 | + | |
61 | 58 | | |
62 | | - | |
63 | 59 | | |
64 | 60 | | |
65 | 61 | | |
| |||
78 | 74 | | |
79 | 75 | | |
80 | 76 | | |
81 | | - | |
82 | | - | |
83 | | - | |
| 77 | + | |
| 78 | + | |
84 | 79 | | |
85 | | - | |
86 | 80 | | |
87 | 81 | | |
88 | 82 | | |
| |||
101 | 95 | | |
102 | 96 | | |
103 | 97 | | |
104 | | - | |
105 | | - | |
106 | | - | |
| 98 | + | |
| 99 | + | |
107 | 100 | | |
108 | | - | |
109 | 101 | | |
110 | 102 | | |
111 | 103 | | |
| |||
124 | 116 | | |
125 | 117 | | |
126 | 118 | | |
127 | | - | |
128 | | - | |
129 | | - | |
| 119 | + | |
| 120 | + | |
130 | 121 | | |
131 | | - | |
132 | 122 | | |
133 | 123 | | |
134 | 124 | | |
| |||
147 | 137 | | |
148 | 138 | | |
149 | 139 | | |
150 | | - | |
151 | | - | |
152 | | - | |
| 140 | + | |
| 141 | + | |
153 | 142 | | |
154 | | - | |
155 | 143 | | |
156 | 144 | | |
157 | 145 | | |
| |||
170 | 158 | | |
171 | 159 | | |
172 | 160 | | |
173 | | - | |
174 | | - | |
| 161 | + | |
| 162 | + | |
175 | 163 | | |
176 | 164 | | |
177 | | - | |
178 | 165 | | |
179 | 166 | | |
180 | 167 | | |
| |||
193 | 180 | | |
194 | 181 | | |
195 | 182 | | |
196 | | - | |
197 | | - | |
198 | | - | |
| 183 | + | |
| 184 | + | |
199 | 185 | | |
200 | | - | |
201 | 186 | | |
202 | 187 | | |
203 | 188 | | |
| |||
216 | 201 | | |
217 | 202 | | |
218 | 203 | | |
219 | | - | |
220 | | - | |
221 | | - | |
| 204 | + | |
| 205 | + | |
222 | 206 | | |
223 | | - | |
224 | 207 | | |
225 | 208 | | |
226 | 209 | | |
| |||
239 | 222 | | |
240 | 223 | | |
241 | 224 | | |
242 | | - | |
243 | | - | |
244 | | - | |
| 225 | + | |
| 226 | + | |
245 | 227 | | |
246 | | - | |
247 | 228 | | |
248 | 229 | | |
249 | 230 | | |
| |||
262 | 243 | | |
263 | 244 | | |
264 | 245 | | |
265 | | - | |
266 | | - | |
267 | | - | |
| 246 | + | |
| 247 | + | |
268 | 248 | | |
269 | | - | |
270 | 249 | | |
271 | 250 | | |
272 | 251 | | |
| |||
285 | 264 | | |
286 | 265 | | |
287 | 266 | | |
288 | | - | |
289 | | - | |
290 | | - | |
| 267 | + | |
| 268 | + | |
291 | 269 | | |
292 | | - | |
293 | 270 | | |
294 | 271 | | |
295 | 272 | | |
| |||
308 | 285 | | |
309 | 286 | | |
310 | 287 | | |
311 | | - | |
312 | | - | |
313 | | - | |
| 288 | + | |
| 289 | + | |
314 | 290 | | |
315 | | - | |
316 | 291 | | |
317 | 292 | | |
318 | 293 | | |
| |||
352 | 327 | | |
353 | 328 | | |
354 | 329 | | |
355 | | - | |
356 | | - | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
357 | 358 | | |
358 | 359 | | |
359 | | - | |
360 | | - | |
361 | | - | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
362 | 363 | | |
363 | 364 | | |
364 | 365 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
437 | 437 | | |
438 | 438 | | |
439 | 439 | | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | 6 | | |
8 | 7 | | |
| 8 | + | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
135 | 136 | | |
136 | 137 | | |
137 | 138 | | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
0 commit comments