diff --git a/crates/transaction-pool/src/blobstore/disk.rs b/crates/transaction-pool/src/blobstore/disk.rs index 7dec332784..4c130b3529 100644 --- a/crates/transaction-pool/src/blobstore/disk.rs +++ b/crates/transaction-pool/src/blobstore/disk.rs @@ -82,8 +82,11 @@ impl DiskFileBlobStore { for (hash_idx, match_result) in blob_sidecar.match_versioned_hashes(versioned_hashes) { - result[hash_idx] = Some(match_result); - missing_count -= 1; + let slot = &mut result[hash_idx]; + if slot.is_none() { + missing_count -= 1; + } + *slot = Some(match_result); } } diff --git a/crates/transaction-pool/src/blobstore/mem.rs b/crates/transaction-pool/src/blobstore/mem.rs index 75dcfe6673..4d1b1ff77b 100644 --- a/crates/transaction-pool/src/blobstore/mem.rs +++ b/crates/transaction-pool/src/blobstore/mem.rs @@ -30,8 +30,11 @@ impl InMemoryBlobStore { for (hash_idx, match_result) in blob_sidecar.match_versioned_hashes(versioned_hashes) { - result[hash_idx] = Some(match_result); - missing_count -= 1; + let slot = &mut result[hash_idx]; + if slot.is_none() { + missing_count -= 1; + } + *slot = Some(match_result); } }