mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Invert conditional and return early for AddEventListener/RemoveEventListener
This commit is contained in:
parent
8a3af9d1b9
commit
76e04e2acd
1 changed files with 30 additions and 26 deletions
|
@ -515,21 +515,23 @@ impl EventTargetMethods for EventTarget {
|
||||||
ty: DOMString,
|
ty: DOMString,
|
||||||
listener: Option<Rc<EventListener>>,
|
listener: Option<Rc<EventListener>>,
|
||||||
capture: bool) {
|
capture: bool) {
|
||||||
if let Some(listener) = listener {
|
let listener = match listener {
|
||||||
let mut handlers = self.handlers.borrow_mut();
|
Some(l) => l,
|
||||||
let entry = match handlers.entry(Atom::from(ty)) {
|
None => return,
|
||||||
Occupied(entry) => entry.into_mut(),
|
};
|
||||||
Vacant(entry) => entry.insert(EventListeners(vec!())),
|
let mut handlers = self.handlers.borrow_mut();
|
||||||
};
|
let entry = match handlers.entry(Atom::from(ty)) {
|
||||||
|
Occupied(entry) => entry.into_mut(),
|
||||||
|
Vacant(entry) => entry.insert(EventListeners(vec!())),
|
||||||
|
};
|
||||||
|
|
||||||
let phase = if capture { ListenerPhase::Capturing } else { ListenerPhase::Bubbling };
|
let phase = if capture { ListenerPhase::Capturing } else { ListenerPhase::Bubbling };
|
||||||
let new_entry = EventListenerEntry {
|
let new_entry = EventListenerEntry {
|
||||||
phase: phase,
|
phase: phase,
|
||||||
listener: EventListenerType::Additive(listener)
|
listener: EventListenerType::Additive(listener)
|
||||||
};
|
};
|
||||||
if !entry.contains(&new_entry) {
|
if !entry.contains(&new_entry) {
|
||||||
entry.push(new_entry);
|
entry.push(new_entry);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -538,18 +540,20 @@ impl EventTargetMethods for EventTarget {
|
||||||
ty: DOMString,
|
ty: DOMString,
|
||||||
listener: Option<Rc<EventListener>>,
|
listener: Option<Rc<EventListener>>,
|
||||||
capture: bool) {
|
capture: bool) {
|
||||||
if let Some(ref listener) = listener {
|
let ref listener = match listener {
|
||||||
let mut handlers = self.handlers.borrow_mut();
|
Some(l) => l,
|
||||||
let entry = handlers.get_mut(&Atom::from(ty));
|
None => return,
|
||||||
for entry in entry {
|
};
|
||||||
let phase = if capture { ListenerPhase::Capturing } else { ListenerPhase::Bubbling };
|
let mut handlers = self.handlers.borrow_mut();
|
||||||
let old_entry = EventListenerEntry {
|
let entry = handlers.get_mut(&Atom::from(ty));
|
||||||
phase: phase,
|
for entry in entry {
|
||||||
listener: EventListenerType::Additive(listener.clone())
|
let phase = if capture { ListenerPhase::Capturing } else { ListenerPhase::Bubbling };
|
||||||
};
|
let old_entry = EventListenerEntry {
|
||||||
if let Some(position) = entry.iter().position(|e| *e == old_entry) {
|
phase: phase,
|
||||||
entry.remove(position);
|
listener: EventListenerType::Additive(listener.clone())
|
||||||
}
|
};
|
||||||
|
if let Some(position) = entry.iter().position(|e| *e == old_entry) {
|
||||||
|
entry.remove(position);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue