mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Fixed panic in ActiveTimers.set_timeout_or_interval.
This commit is contained in:
parent
354e75a447
commit
a3859c0726
1 changed files with 10 additions and 4 deletions
|
@ -139,8 +139,6 @@ impl ActiveTimers {
|
|||
is_interval: IsInterval,
|
||||
source: TimerSource)
|
||||
-> i32 {
|
||||
assert!(self.suspended_since.get().is_none());
|
||||
|
||||
// step 3
|
||||
let TimerHandle(new_handle) = self.next_timer_handle.get();
|
||||
self.next_timer_handle.set(TimerHandle(new_handle + 1));
|
||||
|
@ -283,7 +281,10 @@ impl ActiveTimers {
|
|||
}
|
||||
|
||||
fn schedule_timer_call(&self) {
|
||||
assert!(self.suspended_since.get().is_none());
|
||||
if self.suspended_since.get().is_some() {
|
||||
// The timer will be scheduled when the pipeline is thawed.
|
||||
return;
|
||||
}
|
||||
|
||||
let timers = self.timers.borrow();
|
||||
|
||||
|
@ -318,7 +319,12 @@ impl ActiveTimers {
|
|||
}
|
||||
|
||||
fn base_time(&self) -> MsDuration {
|
||||
precise_time_ms() - self.suspension_offset.get()
|
||||
let offset = self.suspension_offset.get();
|
||||
|
||||
match self.suspended_since.get() {
|
||||
Some(time) => time - offset,
|
||||
None => precise_time_ms() - offset,
|
||||
}
|
||||
}
|
||||
|
||||
// see step 7 of https://html.spec.whatwg.org/multipage/#timer-initialisation-steps
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue