diff options
Diffstat (limited to 'src/model/layout.rs')
| -rw-r--r-- | src/model/layout.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/model/layout.rs b/src/model/layout.rs index 49720be4..92d73977 100644 --- a/src/model/layout.rs +++ b/src/model/layout.rs @@ -221,18 +221,19 @@ impl Layout for LayoutNode { regions: &Regions, styles: StyleChain, ) -> TypResult<Vec<Arc<Frame>>> { - let (result, cursor) = crate::memo::memoized( + let (result, at, pins) = crate::memo::memoized( (self, &mut *ctx, regions, styles), |(node, ctx, regions, styles)| { + let at = ctx.pins.cursor(); let entry = StyleEntry::Barrier(Barrier::new(node.id())); let result = node.0.layout(ctx, regions, entry.chain(&styles)); - (result, ctx.pins.cursor()) + (result, at, ctx.pins.from(at)) }, ); // Replay the side effect in case of caching. This should currently be // more or less the only relevant side effect on the context. - ctx.pins.jump(cursor); + ctx.pins.replay(at, pins); result } |
