diff options
author | Paul Masurel <paul.masurel@gmail.com> | 2018-05-07 23:57:53 -0700 |
---|---|---|
committer | Paul Masurel <paul.masurel@gmail.com> | 2018-05-07 23:57:53 -0700 |
commit | 24050d0eb526ab63323f91e03e55ea61fc6fc1ea (patch) | |
tree | 8f290a9d7983abb7aed4c89dd4ca04d58045ddd1 /src/collector | |
parent | 9a0b7f9855f34eb772358e0cc1d00b4fa937c781 (diff) |
Remove some unsafe stuff, justified some of it.
Diffstat (limited to 'src/collector')
-rw-r--r-- | src/collector/facet_collector.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/collector/facet_collector.rs b/src/collector/facet_collector.rs index e904c2e..e527499 100644 --- a/src/collector/facet_collector.rs +++ b/src/collector/facet_collector.rs @@ -379,8 +379,10 @@ impl FacetCollector { }) .sum(); if count > 0u64 { - let bytes = facet_merger.key().to_owned(); - facet_counts.insert(Facet::from_encoded(bytes), count); + let bytes: Vec<u8> = facet_merger.key().to_owned(); + // may create an corrupted facet if the term dicitonary is corrupted + let facet = unsafe { Facet::from_encoded(bytes) }; + facet_counts.insert(facet, count); } } FacetCounts { facet_counts } @@ -452,9 +454,9 @@ impl FacetCounts { let right_bound = if facet.is_root() { Bound::Unbounded } else { - let mut facet_after_bytes = facet.encoded_bytes().to_owned(); + let mut facet_after_bytes: Vec<u8> = facet.encoded_bytes().to_owned(); facet_after_bytes.push(1u8); - let facet_after = Facet::from_encoded(facet_after_bytes); + let facet_after = unsafe { Facet::from_encoded(facet_after_bytes) }; // ok logic Bound::Excluded(facet_after) }; let underlying: btree_map::Range<_, _> = self.facet_counts.range((left_bound, right_bound)); |