diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2019-06-23 11:05:42 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2019-06-23 11:06:19 +0200 |
commit | 59ddb70345864041d6d44b90a7108f13074a581e (patch) | |
tree | 6f5bebe50d0776a2bea3fb072e53247ab06cde58 /lib/entry/libimagentrylink | |
parent | d89a700fd1e1722b38d64118e7680670d58f9194 (diff) |
Fix: Make sure links are sorted and deduplicated
Diffstat (limited to 'lib/entry/libimagentrylink')
-rw-r--r-- | lib/entry/libimagentrylink/src/linkable.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/entry/libimagentrylink/src/linkable.rs b/lib/entry/libimagentrylink/src/linkable.rs index e571a20f..104e6421 100644 --- a/lib/entry/libimagentrylink/src/linkable.rs +++ b/lib/entry/libimagentrylink/src/linkable.rs @@ -98,9 +98,15 @@ impl Linkable for Entry { let mut left_internal = left.internal.unwrap_or_else(|| vec![]); left_internal.push(right_location); + left_internal.sort_unstable(); + left_internal.dedup(); + let mut right_internal = right.internal.unwrap_or_else(|| vec![]); right_internal.push(left_location); + right_internal.sort_unstable(); + right_internal.dedup(); + left.internal = Some(left_internal); right.internal = Some(right_internal); @@ -117,9 +123,15 @@ impl Linkable for Entry { let mut left_internal = left.internal.unwrap_or_else(|| vec![]); left_internal.retain(|l| *l != right_location); + left_internal.sort_unstable(); + left_internal.dedup(); + let mut right_internal = right.internal.unwrap_or_else(|| vec![]); right_internal.retain(|l| *l != left_location); + right_internal.sort_unstable(); + right_internal.dedup(); + left.internal = Some(left_internal); right.internal = Some(right_internal); |