Do not create a channel for each source in add_font_face_rules

This commit is contained in:
Anthony Ramine 2016-05-21 00:55:01 +02:00
parent 6c5f5d35f5
commit 1621e0679e

View file

@ -357,19 +357,23 @@ fn add_font_face_rules(stylesheet: &Stylesheet,
font_cache_thread: &FontCacheThread,
font_cache_sender: &IpcSender<()>,
outstanding_web_fonts_counter: &Arc<AtomicUsize>) {
for font_face in stylesheet.effective_rules(&device).font_face() {
for source in &font_face.sources {
if opts::get().load_webfonts_synchronously {
let (sender, receiver) = ipc::channel().unwrap();
if opts::get().load_webfonts_synchronously {
let (sender, receiver) = ipc::channel().unwrap();
for font_face in stylesheet.effective_rules(&device).font_face() {
for source in &font_face.sources {
font_cache_thread.add_web_font(font_face.family.clone(),
(*source).clone(),
sender);
(*source).clone(),
sender.clone());
receiver.recv().unwrap();
} else {
}
}
} else {
for font_face in stylesheet.effective_rules(&device).font_face() {
for source in &font_face.sources {
outstanding_web_fonts_counter.fetch_add(1, Ordering::SeqCst);
font_cache_thread.add_web_font(font_face.family.clone(),
(*source).clone(),
(*font_cache_sender).clone());
(*source).clone(),
(*font_cache_sender).clone());
}
}
}