File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,22 +11,25 @@ internal class ClosureExpressionMiddleware : IExpressionMiddleware
1111 {
1212 public Expression < T > Invoke < T > ( Expression < T > expression ) where T : Delegate
1313 {
14- using var container = GenericObjectPool < List < ConstantExpression > > . Shared . Use ( ) ;
15- var constants = container . Value ;
14+ var constants = new List < ConstantExpression > ( ) ;
1615 var closureCollectorVisitor = new ClosureCollectorVisitor ( constants ) ;
1716 expression = ( Expression < T > ) closureCollectorVisitor . Visit ( expression ) ;
1817
1918 if ( constants . Count == 0 ) return expression ;
20-
21- using var closureBuilder = ClosureBuilder . Create ( ) ;
22- for ( var index = 0 ; index < constants . Count ; index ++ )
19+
20+ KeyValuePair < ParameterExpression , Dictionary < Expression , Expression > > closureDefinition ;
21+ Closure closure ;
22+ using ( var closureBuilder = ClosureBuilder . Create ( ) )
2323 {
24- var value = constants [ index ] ;
25- closureBuilder . Add ( value ) ;
24+ for ( var index = 0 ; index < constants . Count ; index ++ )
25+ {
26+ var value = constants [ index ] ;
27+ closureBuilder . Add ( value ) ;
28+ }
29+
30+ closureDefinition = closureBuilder . Build ( out closure ) ;
2631 }
2732
28- var closureDefinition = closureBuilder . Build ( out var closure ) ;
29-
3033 var closureVisitor = new ClosureVisitor ( closureDefinition ) ;
3134 expression = ( Expression < T > ) closureVisitor . Visit ( expression ) ;
3235
Original file line number Diff line number Diff line change 1- using System ;
2-
3- namespace HandlebarsDotNet . Pools
1+ namespace HandlebarsDotNet . Pools
42{
53 internal class GenericObjectPool < T > : InternalObjectPool < T , GenericObjectPool < T > . Policy >
64 where T : class , new ( )
75 {
8- private static readonly Lazy < GenericObjectPool < T > > Instance = new ( ( ) => new GenericObjectPool < T > ( ) ) ;
9- public static GenericObjectPool < T > Shared => Instance . Value ;
10-
6+ public static GenericObjectPool < T > Shared { get ; } = new ( ) ;
7+
118 private GenericObjectPool ( ) : base ( new Policy ( ) ) { }
129
1310 public readonly struct Policy : IInternalObjectPoolPolicy < T >
You can’t perform that action at this time.
0 commit comments