aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/components/script/dom/eventdispatcher.rs8
-rw-r--r--src/components/script/dom/eventtarget.rs4
2 files changed, 5 insertions, 7 deletions
diff --git a/src/components/script/dom/eventdispatcher.rs b/src/components/script/dom/eventdispatcher.rs
index ba8e06795f5..2c3ccc0da32 100644
--- a/src/components/script/dom/eventdispatcher.rs
+++ b/src/components/script/dom/eventdispatcher.rs
@@ -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() {
diff --git a/src/components/script/dom/eventtarget.rs b/src/components/script/dom/eventtarget.rs
index 26df47ef585..ae87a5d73ac 100644
--- a/src/components/script/dom/eventtarget.rs
+++ b/src/components/script/dom/eventtarget.rs
@@ -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);