mirror of
https://github.com/savannstm/marshal-rs.git
synced 2026-05-17 08:16:52 +00:00
`read_hashmap` was calling `.take()` on the inner Value of each key and value RC, which drained the shared SafeCell used by the symbols/objects tables. When a SymbolLink (`;`) referenced a symbol that later appeared as a hashmap key, the first `take()` emptied the shared cell, and the second usage resolved to Null. Replacing `take()` with `clone()` keeps the symbols/objects tables intact. Since Value derives Clone, this has negligible cost for typical payloads. Fixes tests in symbol_link_reuse_test.rs. |
||
|---|---|---|
| .. | ||
| constants.rs | ||
| dump.rs | ||
| lib.rs | ||
| load.rs | ||
| types.rs | ||