From 950451a844d3830180c250895c0b841e07af7652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Sat, 17 Dec 2016 14:40:33 -0800 Subject: [PATCH] servo: Merge #14622 - stylo: Track the last restyle generation properly (from emilio:last-restyle); r=bholley I couldn't reproduce locally, but I believe this fixes: https://bugzilla.mozilla.org/show_bug.cgi?id=1323890 r? @heycam Source-Repo: https://github.com/servo/servo Source-Revision: f6163c77b9ac979f8406ef6ffe90e8c8e4a054cc --- servo/components/style/gecko/data.rs | 10 ++++++++++ servo/ports/geckolib/glue.rs | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/servo/components/style/gecko/data.rs b/servo/components/style/gecko/data.rs index da334bfa4bf4..2b7cfc54a35a 100644 --- a/servo/components/style/gecko/data.rs +++ b/servo/components/style/gecko/data.rs @@ -25,6 +25,9 @@ pub struct PerDocumentStyleDataImpl { /// Rule processor. pub stylist: Arc, + /// Last restyle generation. + pub last_restyle_generation: u32, + /// List of stylesheets, mirrored from Gecko. pub stylesheets: Vec>, @@ -64,6 +67,7 @@ impl PerDocumentStyleData { PerDocumentStyleData(AtomicRefCell::new(PerDocumentStyleDataImpl { stylist: Arc::new(Stylist::new(device)), + last_restyle_generation: 0, stylesheets: vec![], stylesheets_changed: true, new_animations_sender: new_anims_sender, @@ -101,6 +105,12 @@ impl PerDocumentStyleDataImpl { self.stylesheets_changed = false; } } + + pub fn next_generation(&mut self) -> u32 { + self.last_restyle_generation = + self.last_restyle_generation.wrapping_add(1); + self.last_restyle_generation + } } unsafe impl HasFFI for PerDocumentStyleData { diff --git a/servo/ports/geckolib/glue.rs b/servo/ports/geckolib/glue.rs index 3194001b4509..4b20c76f0b25 100644 --- a/servo/ports/geckolib/glue.rs +++ b/servo/ports/geckolib/glue.rs @@ -106,7 +106,7 @@ fn create_shared_context(mut per_doc_data: &mut AtomicRefMut