From 28a0a9343c7f06d5237d89ab9c4ecc274c32d5f1 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Fri, 4 Sep 2020 14:33:24 +0200 Subject: [PATCH] tools/systemd/tm_editor: remove TMChanges optimization while it was correct, there was no measurable speed gain (a benchmark yielded 2.8 ms for a spec that did not find a timestamp either way) so remove it for simpler code Signed-off-by: Dominik Csapak --- src/tools/systemd/time.rs | 24 ++++++++---------------- src/tools/systemd/tm_editor.rs | 33 +-------------------------------- 2 files changed, 9 insertions(+), 48 deletions(-) diff --git a/src/tools/systemd/time.rs b/src/tools/systemd/time.rs index 773a1509..2a1bf8a3 100644 --- a/src/tools/systemd/time.rs +++ b/src/tools/systemd/time.rs @@ -172,12 +172,10 @@ pub fn compute_next_event( count += 1; } - if !all_days && t.changes.contains(TMChanges::WDAY) { // match day first + if !all_days { // match day first let day_num = t.day_num(); let day = WeekDays::from_bits(1< bool { @@ -45,7 +30,7 @@ impl TmEditor { pub fn new(epoch: i64, utc: bool) -> Result { let mut t = if utc { gmtime(epoch)? } else { localtime(epoch)? }; t.tm_year += 1900; // real years for clarity - Ok(Self { utc, t, changes: TMChanges::all() }) + Ok(Self { utc, t }) } pub fn into_epoch(mut self) -> Result { @@ -60,11 +45,9 @@ impl TmEditor { self.t.tm_hour = 0; self.t.tm_min = 0; self.t.tm_sec = 0; - self.changes.insert(TMChanges::HOUR|TMChanges::MIN|TMChanges::SEC); } self.t.tm_mday += days; self.t.tm_wday += days; - self.changes.insert(TMChanges::MDAY|TMChanges::WDAY); self.wrap_time(); } @@ -81,14 +64,12 @@ impl TmEditor { self.t.tm_hour = hour; self.t.tm_min = min; self.t.tm_sec = sec; - self.changes.insert(TMChanges::HOUR|TMChanges::MIN|TMChanges::SEC); self.wrap_time(); } pub fn set_min_sec(&mut self, min: libc::c_int, sec: libc::c_int) { self.t.tm_min = min; self.t.tm_sec = sec; - self.changes.insert(TMChanges::MIN|TMChanges::SEC); self.wrap_time(); } @@ -98,14 +79,12 @@ impl TmEditor { if self.t.tm_sec >= 60 { self.t.tm_min += self.t.tm_sec / 60; self.t.tm_sec %= 60; - self.changes.insert(TMChanges::SEC|TMChanges::MIN); } // min: 0..59 if self.t.tm_min >= 60 { self.t.tm_hour += self.t.tm_min / 60; self.t.tm_min %= 60; - self.changes.insert(TMChanges::MIN|TMChanges::HOUR); } // hour: 0..23 @@ -113,7 +92,6 @@ impl TmEditor { self.t.tm_mday += self.t.tm_hour / 24; self.t.tm_wday += self.t.tm_hour / 24; self.t.tm_hour %= 24; - self.changes.insert(TMChanges::HOUR|TMChanges::MDAY|TMChanges::WDAY); } // Translate to 0..($days_in_mon-1) @@ -124,7 +102,6 @@ impl TmEditor { // Wrap one month self.t.tm_mday -= days_in_mon; self.t.tm_mon += 1; - self.changes.insert(TMChanges::MDAY|TMChanges::WDAY|TMChanges::MON); } // Translate back to 1..$days_in_mon @@ -134,7 +111,6 @@ impl TmEditor { if self.t.tm_mon >= 12 { self.t.tm_year += self.t.tm_mon / 12; self.t.tm_mon %= 12; - self.changes.insert(TMChanges::MON|TMChanges::YEAR); } self.t.tm_wday %= 7; @@ -142,43 +118,36 @@ impl TmEditor { pub fn set_sec(&mut self, v: libc::c_int) { self.t.tm_sec = v; - self.changes.insert(TMChanges::SEC); self.wrap_time(); } pub fn set_min(&mut self, v: libc::c_int) { self.t.tm_min = v; - self.changes.insert(TMChanges::MIN); self.wrap_time(); } pub fn set_hour(&mut self, v: libc::c_int) { self.t.tm_hour = v; - self.changes.insert(TMChanges::HOUR); self.wrap_time(); } pub fn set_mday(&mut self, v: libc::c_int) { self.t.tm_mday = v; - self.changes.insert(TMChanges::MDAY); self.wrap_time(); } pub fn set_mon(&mut self, v: libc::c_int) { self.t.tm_mon = v; - self.changes.insert(TMChanges::MON); self.wrap_time(); } pub fn set_year(&mut self, v: libc::c_int) { self.t.tm_year = v; - self.changes.insert(TMChanges::YEAR); self.wrap_time(); } pub fn set_wday(&mut self, v: libc::c_int) { self.t.tm_wday = v; - self.changes.insert(TMChanges::WDAY); self.wrap_time(); }