mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-19 23:03:45 +01:00
50cce20013test, refactor: Compact ccoins_access and ccoins_spend (Lőrinc)0a159f0914test, refactor: Remove remaining unbounded flags from coins_tests (Lőrinc)c0b4b2c1eetest: Validate error messages on fail (Lőrinc)d5f8d607abtest: Group values and states in tests into CoinEntry wrappers (Lőrinc)ca74aa7490test, refactor: Migrate GetCoinsMapEntry to return MaybeCoin (Lőrinc)15aaa81c38coins, refactor: Remove direct GetFlags access (Lőrinc)6b733699cfcoins, refactor: Assume state after SetClean in AddFlags to prevent dangling pointers (Lőrinc)fc8c282022coins, refactor: Make AddFlags, SetDirty, SetFresh static (Lőrinc)cd0498eabccoins, refactor: Split up AddFlags to remove invalid states (Lőrinc) Pull request description: Similarly to https://github.com/bitcoin/bitcoin/pull/30849, this cleanup is intended to de-risk https://github.com/bitcoin/bitcoin/pull/30673#discussion_r1739909068 by simplifying the coin cache public interface. `CCoinsCacheEntry` provided general access to its internal flags state, even though, in reality, it could only be `clean`, `fresh`, `dirty`, or `fresh|dirty` (in the follow-up, we will remove `fresh` without `dirty`). Once it was marked as `dirty`, we couldn’t set the state back to clean with `AddFlags(0)`—tests explicitly checked against that. This PR refines the public interface to make this distinction clearer and to make invalid behavior impossible, rather than just checked by tests. We don't need extensive access to the internals of `CCoinsCacheEntry`, as many tests were simply validating invalid combinations in this way. The last few commits contain significant test refactorings to make `coins_tests` easier to change in follow-ups. ACKs for top commit: andrewtoth: Code Review ACK50cce20013laanwj: Code review ACK50cce20013ryanofsky: Code review ACK50cce20013. Looks good! Thanks for the followups. Tree-SHA512: c0d65f1c7680b4bb9cd368422b218f2473c2ec75a32c7350a6e11e8a1601c81d3c0ae651b9f1dae08400fb4e5d43431d9e4ccca305a718183f9a936fe47c1a6c
16 KiB
16 KiB