Commit graph

5 commits

Author SHA1 Message Date
Martin von Zweigbergk
0219dbb359 transaction: make evolution_mut() return a mutable reference
This includes fixing a lifetime bound on `MutableEvolution` that was
reversed.
2020-12-23 17:32:32 -08:00
Martin von Zweigbergk
110c083e78 evolution: don't wrap State in Mutex<Option<>> 2020-12-23 17:32:31 -08:00
Martin von Zweigbergk
fce5ec21f6 evolution: make MutableEvolution own its state
Before this commit, it could share its state with the
`ReadonlyEvolution`. That makes no sense when the state is modified,
and would crash if we tried to get a mutable reference to the
state. It only "worked" because the state is not yet updated within a
transaction (a known bug). I'm about to fix that bug, so we need to
fix the ownership, which this commit does.
2020-12-23 17:32:31 -08:00
Martin von Zweigbergk
648ec34a4c evolution: move shared implementation onto the State struct
There was some duplicate between `ReadonlyEvolution` and
`MutableEvolution` that could be extracted. It will help to have this
shared code on the `State` object for the next few patches.
2020-12-23 17:32:31 -08:00
Martin von Zweigbergk
6b1427cb46 import commit 0f15be02bf4012c116636913562691a0aaa7aed2 from my hg repo 2020-12-12 00:23:38 -08:00