auto merge of #1204 : jdm/servo/clones, r=kmcallister

r? @kmcallister
This commit is contained in:
bors-servo 2013-11-07 14:58:16 -08:00
commit bdc7e984eb
2 changed files with 5 additions and 7 deletions

View file

@ -34,8 +34,7 @@ pub fn dispatch_event(target: AbstractEventTarget, event: AbstractEvent) -> bool
/* capturing */
for &cur_target in chain.rev_iter() {
//XXX bad clone
let stopped = match cur_target.eventtarget().get_listeners_for(type_.clone(), Capturing) {
let stopped = match cur_target.eventtarget().get_listeners_for(type_, Capturing) {
Some(listeners) => {
event.mut_event().current_target = Some(cur_target);
for listener in listeners.iter() {
@ -64,7 +63,7 @@ pub fn dispatch_event(target: AbstractEventTarget, event: AbstractEvent) -> bool
event.current_target = Some(target);
}
let opt_listeners = target.eventtarget().get_listeners(type_.clone());
let opt_listeners = target.eventtarget().get_listeners(type_);
for listeners in opt_listeners.iter() {
for listener in listeners.iter() {
listener.HandleEvent__(event, eReportExceptions);
@ -80,8 +79,7 @@ pub fn dispatch_event(target: AbstractEventTarget, event: AbstractEvent) -> bool
event.mut_event().phase = Phase_Bubbling;
for &cur_target in chain.iter() {
//XXX bad clone
let stopped = match cur_target.eventtarget().get_listeners_for(type_.clone(), Bubbling) {
let stopped = match cur_target.eventtarget().get_listeners_for(type_, Bubbling) {
Some(listeners) => {
event.mut_event().current_target = Some(cur_target);
for listener in listeners.iter() {

View file

@ -112,13 +112,13 @@ impl EventTarget {
}
}
pub fn get_listeners(&self, type_: ~str) -> Option<~[EventListener]> {
pub fn get_listeners(&self, type_: &str) -> Option<~[EventListener]> {
do self.handlers.find_equiv(&type_).map |listeners| {
listeners.iter().map(|entry| entry.listener).collect()
}
}
pub fn get_listeners_for(&self, type_: ~str, desired_phase: ListenerPhase)
pub fn get_listeners_for(&self, type_: &str, desired_phase: ListenerPhase)
-> Option<~[EventListener]> {
do self.handlers.find_equiv(&type_).map |listeners| {
let filtered = listeners.iter().filter(|entry| entry.phase == desired_phase);