aboutsummaryrefslogtreecommitdiffstats
path: root/components/devtools/lib.rs
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-07-07 09:43:36 -0600
committerbors-servo <metajack+bors@gmail.com>2015-07-07 09:43:36 -0600
commitc04b7bbf6e5efe2e5217b69c9680e4e91bbd6ecd (patch)
treec7581b9b20b6639e5be2d4c356020feb5e2aa1bf /components/devtools/lib.rs
parentd64f91863af6c22b3af6d5ea5ebfd671f4e83aaa (diff)
parent81c0d32a049c61b86b2ae57dde1b3db43c3c83b1 (diff)
downloadservo-c04b7bbf6e5efe2e5217b69c9680e4e91bbd6ecd.tar.gz
servo-c04b7bbf6e5efe2e5217b69c9680e4e91bbd6ecd.zip
Auto merge of #6540 - jdm:devtoolsfix, r=glennw
Make devtools usable once more. This fixes the panic by rebasing #6189, and also makes cached messages appear once more. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6540) <!-- Reviewable:end -->
Diffstat (limited to 'components/devtools/lib.rs')
-rw-r--r--components/devtools/lib.rs20
1 files changed, 15 insertions, 5 deletions
diff --git a/components/devtools/lib.rs b/components/devtools/lib.rs
index f0fca1a9b0e..945af8210fc 100644
--- a/components/devtools/lib.rs
+++ b/components/devtools/lib.rs
@@ -250,7 +250,10 @@ fn run_server(sender: Sender<DevtoolsControlMsg>,
id: PipelineId,
console_message: ConsoleMessage,
actor_pipelines: &HashMap<PipelineId, String>) {
- let console_actor_name = find_console_actor(actors.clone(), id, actor_pipelines);
+ let console_actor_name = match find_console_actor(actors.clone(), id, actor_pipelines) {
+ Some(name) => name,
+ None => return,
+ };
let actors = actors.lock().unwrap();
let console_actor = actors.find::<ConsoleActor>(&console_actor_name);
let msg = ConsoleAPICall {
@@ -278,12 +281,15 @@ fn run_server(sender: Sender<DevtoolsControlMsg>,
fn find_console_actor(actors: Arc<Mutex<ActorRegistry>>,
id: PipelineId,
- actor_pipelines: &HashMap<PipelineId, String>) -> String {
+ actor_pipelines: &HashMap<PipelineId, String>) -> Option<String> {
let actors = actors.lock().unwrap();
- let ref tab_actor_name = (*actor_pipelines)[&id];
+ let tab_actor_name = match (*actor_pipelines).get(&id) {
+ Some(name) => name,
+ None => return None,
+ };
let tab_actor = actors.find::<TabActor>(tab_actor_name);
let console_actor_name = tab_actor.console.clone();
- return console_actor_name;
+ return Some(console_actor_name);
}
fn handle_network_event(actors: Arc<Mutex<ActorRegistry>>,
@@ -294,7 +300,11 @@ fn run_server(sender: Sender<DevtoolsControlMsg>,
request_id: String,
network_event: NetworkEvent) {
- let console_actor_name = find_console_actor(actors.clone(), pipeline_id, actor_pipelines);
+ let console_actor_name = match find_console_actor(actors.clone(), pipeline_id,
+ actor_pipelines) {
+ Some(name) => name,
+ None => return,
+ };
let netevent_actor_name = find_network_event_actor(actors.clone(), actor_requests, request_id.clone());
let mut actors = actors.lock().unwrap();
let actor = actors.find_mut::<NetworkEventActor>(&netevent_actor_name);