merge-script
81e67d9aa1
Merge bitcoin/bitcoin#34179 : refactor: Enable transparent lookup for setBlockIndexCandidates to remove const_cast
...
3bd98b4508 refactor: use transparent comparator for setBlockIndexCandidates lookups (joaonevess)
Pull request description:
### Rationale
This PR improves code safety by removing a `const_cast` in `src/validation.cpp`.
Currently, `setBlockIndexCandidates` stores mutable `CBlockIndex*`. However, validation logic (like `CVerifyDB`) often holds `const CBlockIndex*`. Previously, checking for existence in the set required casting away constness. While currently benign, this bypasses compiler safety checks and could mask accidental modifications in future refactors.
### Description
1. **Enable Heterogeneous Lookup:** Added `using is_transparent = void;` to `CBlockIndexWorkComparator` in `src/node/blockstorage.h`. This allows the `std::set` to natively accept `const CBlockIndex*` for lookup (utilizing C++14 heterogeneous lookup).
2. **Remove Cast:** Removed the now unnecessary `const_cast<CBlockIndex*>` in `src/validation.cpp`, allowing the compiler to strictly enforce const-correctness.
### Notes
- **Refactoring only:** No behavioral change.
- **Verification:** `validation_tests` and `blockmanager_tests` pass.
ACKs for top commit:
maflcko:
review ACK 3bd98b4508 🚪
frankomosh:
ACK 3bd98b4508 . Good use of transparent comparator to eliminate `const_cast` in this specific code path.
sedited:
ACK 3bd98b4508
Tree-SHA512: 0f76bdce2a54b759dfec99633afce1e95586e62f4057ecf1e82eed1a073eb8ecb2d659ccbf28a7a139f0aa09a30f058ac6966cafdfbf1f2ee878fa2d86b2c487
2026-02-02 08:49:02 +01:00
..
2026-01-24 00:44:22 +01:00
2026-01-27 13:26:43 +01:00
2026-01-22 12:39:52 +01:00
2026-01-20 15:47:17 -08:00
2025-08-07 09:27:25 +01:00
2026-01-30 11:50:17 +00:00
2026-01-30 11:50:17 +00:00
2026-01-27 13:08:50 +01:00
2026-01-28 13:43:56 +01:00
2026-01-21 15:07:23 +00:00
2026-01-29 11:51:41 +01:00
2025-10-16 13:49:49 +01:00
2025-12-16 22:21:15 +01:00
2025-10-13 12:33:23 +01:00
2026-02-02 08:49:02 +01:00
2026-01-14 23:04:12 +01:00
2026-01-28 17:08:34 +01:00
2026-01-28 14:44:22 +01:00
2026-01-29 14:43:27 -08:00
2026-02-02 08:16:43 +01:00
2026-01-27 09:56:12 +00:00
2026-01-20 15:35:19 +01:00
2026-01-30 16:22:43 -08:00
2026-01-31 10:41:50 +00:00
2026-01-30 15:18:05 +00:00
2026-01-30 18:26:07 -08:00
2026-01-29 14:38:35 +00:00
2026-01-29 14:38:35 +00:00
2026-01-28 14:44:22 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-14 23:04:12 +01:00
2025-12-19 16:56:02 +00:00
2026-01-14 23:04:12 +01:00
2025-12-16 22:21:15 +01:00
2025-09-12 22:28:41 +02:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-21 19:40:25 +05:30
2026-01-12 15:02:14 -05:00
2025-12-19 16:56:02 +00:00
2025-12-16 22:21:15 +01:00
2025-10-06 19:41:35 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-19 20:20:13 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-14 11:38:07 -08:00
2026-01-29 11:51:41 +01:00
2025-12-16 22:21:15 +01:00
2026-01-14 23:04:12 +01:00
2026-01-14 23:04:12 +01:00
2025-09-03 11:23:30 +01:00
2025-12-16 22:21:15 +01:00
2025-11-13 09:33:36 +01:00
2025-12-16 22:21:15 +01:00
2026-01-12 17:38:30 -05:00
2026-01-19 12:57:16 +01:00
2026-01-29 14:59:36 -08:00
2026-01-29 14:59:36 -08:00
2025-12-16 22:21:15 +01:00
2026-01-20 15:41:30 -08:00
2026-01-19 12:57:16 +01:00
2025-12-16 22:21:15 +01:00
2025-12-12 06:49:59 -04:00
2025-12-12 06:49:59 -04:00
2025-12-16 22:21:15 +01:00
2026-01-14 23:04:12 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-14 23:03:47 +01:00
2026-01-14 23:04:12 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2025-11-20 11:34:21 +09:00
2025-11-20 11:34:21 +09:00
2025-12-19 16:56:02 +00:00
2025-12-16 22:21:15 +01:00
2026-01-28 13:43:56 +01:00
2025-12-16 22:21:15 +01:00
2025-12-13 13:43:24 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-29 11:51:41 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2025-10-14 16:25:52 -04:00
2025-09-30 11:06:43 -07:00
2026-01-12 15:02:14 -05:00
2026-01-12 15:02:14 -05:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-14 11:38:07 -08:00
2025-12-16 22:21:15 +01:00
2025-11-24 18:48:43 +01:00
2025-11-24 18:48:43 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-29 15:11:04 -08:00
2026-01-14 23:04:12 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-28 13:43:56 +01:00
2026-01-20 16:45:18 +01:00
2025-10-02 12:53:55 +01:00
2026-01-14 23:04:12 +01:00
2026-01-22 10:35:14 -05:00
2026-01-23 13:25:42 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-14 19:39:01 +01:00
2026-01-14 19:36:14 +01:00
2025-10-02 12:53:55 +01:00
2025-10-02 12:53:55 +01:00
2025-12-16 22:21:15 +01:00
2026-01-14 23:04:12 +01:00
2025-11-03 14:39:50 +01:00
2025-12-16 17:53:50 +01:00
2025-12-16 17:53:50 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2026-01-14 23:03:47 +01:00
2026-01-14 23:03:47 +01:00
2025-09-30 11:06:09 -07:00
2025-11-03 14:39:48 +01:00
2025-07-25 09:50:50 +02:00
2026-01-14 23:04:12 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2025-12-14 10:04:37 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00
2025-10-30 17:51:53 +01:00
2026-01-20 15:47:17 -08:00
2025-12-21 10:24:09 +01:00
2025-11-14 01:17:38 +02:00
2025-11-14 01:17:38 +02:00
2025-12-19 16:56:02 +00:00
2026-01-21 14:51:12 +01:00
2025-12-16 22:21:15 +01:00
2026-01-20 15:30:46 +01:00
2025-12-16 22:21:15 +01:00
2026-01-06 12:16:45 +01:00
2026-01-02 16:49:23 -08:00
2026-01-12 17:38:30 -05:00
2025-11-25 07:36:50 -05:00
2026-01-22 21:51:13 -05:00
2026-01-22 21:51:13 -05:00
2025-12-18 22:38:02 +01:00
2025-12-30 12:12:26 -08:00
2025-12-16 22:21:15 +01:00
2025-11-03 14:39:48 +01:00
2025-12-16 22:21:15 +01:00
2026-02-02 08:49:02 +01:00
2026-02-02 07:57:34 +01:00
2025-12-16 22:21:15 +01:00
2025-12-12 06:49:59 -04:00
2025-12-16 22:21:15 +01:00
2025-12-19 16:56:02 +00:00
2025-12-16 22:21:15 +01:00
2025-12-16 22:21:15 +01:00