diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-05-25 10:33:20 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-05-25 10:55:08 +0200 |
| commit | 362a7f2a8ac76f944efa05eabcab0960817777c5 (patch) | |
| tree | 07f1a177fbbecdbd11e69bba9baa6a5301b25382 /src/model | |
| parent | 018860da9c72df846d80051a1408b3e632fbaaf6 (diff) | |
Thread-local query cache
Diffstat (limited to 'src/model')
| -rw-r--r-- | src/model/layout.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/model/layout.rs b/src/model/layout.rs index 3b82ddc2..1933fca1 100644 --- a/src/model/layout.rs +++ b/src/model/layout.rs @@ -14,6 +14,7 @@ use crate::geom::{ }; use crate::library::graphics::MoveNode; use crate::library::layout::{AlignNode, PadNode}; +use crate::query::query; use crate::util::Prehashed; use crate::Context; @@ -221,11 +222,13 @@ impl Layout for LayoutNode { regions: &Regions, styles: StyleChain, ) -> TypResult<Vec<Arc<Frame>>> { - ctx.query((self, regions, styles), |ctx, (node, regions, styles)| { - let entry = StyleEntry::Barrier(Barrier::new(node.id())); - node.0.layout(ctx, regions, entry.chain(&styles)) - }) - .clone() + query( + (self, ctx, regions, styles), + |(node, ctx, regions, styles)| { + let entry = StyleEntry::Barrier(Barrier::new(node.id())); + node.0.layout(ctx, regions, entry.chain(&styles)) + }, + ) } fn pack(self) -> LayoutNode { |
