File tree Expand file tree Collapse file tree 1 file changed +17
-6
lines changed
Orm/Xtensive.Orm/Orm/Rse/Transformation/Internals Expand file tree Collapse file tree 1 file changed +17
-6
lines changed Original file line number Diff line number Diff line change 55// Created: 2010.01.21
66
77using System ;
8- using Xtensive . Core ;
9-
108
119namespace Xtensive . Orm . Rse . Transformation
1210{
@@ -56,12 +54,25 @@ private static Func<int> PositiveSelector(Func<int> valueSelector)
5654 } ;
5755 }
5856
59- public IDisposable CreateScope ( )
57+ internal readonly ref struct SkipTakeRewriterScope
58+ {
59+ private readonly SkipTakeRewriter rewriter ;
60+ private readonly SkipTakeRewriterState prevState ;
61+
62+ public void Dispose ( ) => rewriter . State = prevState ;
63+
64+ public SkipTakeRewriterScope ( SkipTakeRewriter rewriter , SkipTakeRewriterState prevState )
65+ {
66+ this . rewriter = rewriter ;
67+ this . prevState = prevState ;
68+ }
69+ }
70+
71+ public SkipTakeRewriterScope CreateScope ( )
6072 {
6173 var currentState = rewriter . State ;
62- var newState = new SkipTakeRewriterState ( currentState ) ;
63- rewriter . State = newState ;
64- return new Disposable ( _ => rewriter . State = currentState ) ;
74+ rewriter . State = new SkipTakeRewriterState ( currentState ) ;
75+ return new SkipTakeRewriterScope ( rewriter , currentState ) ;
6576 }
6677
6778
You can’t perform that action at this time.
0 commit comments