Commit a6b6c32
committed
fix(decode): preserve mapKeyConverter in Decoder#clone()
Decoder#clone() is used for re-entrant decoding (e.g. an extension codec
that decodes nested MessagePack on the same Decoder instance, issue #195).
It copied every decoder option except mapKeyConverter, so any map decoded
re-entrantly silently fell back to the default key converter instead of the
one the caller configured.
Copy mapKeyConverter in clone() alongside the other options, and add a
regression test that decodes a nested map through an extension codec.1 parent 6d4b666 commit a6b6c32
2 files changed
Lines changed: 28 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
264 | 264 | | |
265 | 265 | | |
266 | 266 | | |
| 267 | + | |
267 | 268 | | |
268 | 269 | | |
269 | 270 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
48 | 75 | | |
0 commit comments