Commit d74dbc4
committed
Fix some Factory/ext_type optimization edge cases
Previously, optimized_symbol_parsing would enable a fast path for
symbols but it never actually registered the Symbol's ext_type (so it
was always 0x0). This resulted in the optimization not working if Symbol
is registered with a different type and could additionally cause data
corruption if some other type is registered as 0x0.
Additionally, many of these Factory fields were not copied over on dup,
meaning pooled Factories would have optimized_symbol_parsing disabled if
they don't explicitly `freeze` before calling `pool` (which would do
`dup.freeze`).1 parent 42378b0 commit d74dbc4
3 files changed
Lines changed: 7 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| 62 | + | |
62 | 63 | | |
63 | 64 | | |
64 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
| 124 | + | |
124 | 125 | | |
| 126 | + | |
| 127 | + | |
125 | 128 | | |
126 | 129 | | |
127 | 130 | | |
| |||
230 | 233 | | |
231 | 234 | | |
232 | 235 | | |
| 236 | + | |
233 | 237 | | |
234 | 238 | | |
235 | 239 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
512 | 512 | | |
513 | 513 | | |
514 | 514 | | |
515 | | - | |
| 515 | + | |
516 | 516 | | |
517 | 517 | | |
518 | | - | |
| 518 | + | |
519 | 519 | | |
520 | 520 | | |
521 | 521 | | |
| |||
0 commit comments