From c09e8f6d12a43df43456c2bd53f3df882ef07c66 Mon Sep 17 00:00:00 2001 From: Felix Hanau Date: Thu, 27 Jun 2019 15:05:35 +0100 Subject: [PATCH] Make filter, zlib level and strategy deterministic (#179) --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 70ff06ca..f4179808 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -446,7 +446,7 @@ pub fn optimize_from_memory(data: &[u8], opts: &Options) -> PngResult> { } } -#[derive(Debug, PartialEq, Clone, Copy)] +#[derive(Debug, PartialEq, PartialOrd, Clone, Copy)] /// Defines options to be used for a single compression trial struct TrialOptions { pub filter: u8, @@ -636,7 +636,7 @@ fn optimize_png( } }); let best: Option = - best.reduce_with(|i, j| if i.1.len() <= j.1.len() { i } else { j }); + best.reduce_with(|i, j| if i.1.len() < j.1.len() || (i.1.len() == j.1.len() && i.0 < j.0) { i } else { j }); if let Some(better) = best { png.idat_data = better.1;