Skip to content

Commit 81f1b9b

Browse files
committed
Downgrade ByRefReference to an expression & rename it
1 parent 1f7f239 commit 81f1b9b

File tree

2 files changed

+9
-22
lines changed

2 files changed

+9
-22
lines changed

src/Castle.Core/DynamicProxy/Generators/Emitters/SimpleAST/ByRefReference.cs renamed to src/Castle.Core/DynamicProxy/Generators/Emitters/SimpleAST/AddressOfExpression.cs

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,35 +16,22 @@
1616

1717
namespace Castle.DynamicProxy.Generators.Emitters.SimpleAST
1818
{
19-
using System;
2019
using System.Diagnostics;
2120
using System.Reflection.Emit;
2221

23-
24-
[DebuggerDisplay("&{localReference}")]
25-
internal class ByRefReference : Reference
22+
[DebuggerDisplay("&{reference}")]
23+
internal class AddressOfExpression : IExpression
2624
{
27-
private readonly LocalReference localReference;
28-
29-
public ByRefReference(LocalReference localReference)
30-
: base(localReference.Type)
31-
{
32-
this.localReference = localReference;
33-
}
34-
35-
public override void EmitAddress(ILGenerator gen)
36-
{
37-
localReference.EmitAddress(gen);
38-
}
25+
private readonly Reference reference;
3926

40-
public override void Emit(ILGenerator gen)
27+
public AddressOfExpression(Reference reference)
4128
{
42-
localReference.EmitAddress(gen);
29+
this.reference = reference;
4330
}
4431

45-
public override void EmitStore(IExpression value, ILGenerator gen)
32+
public void Emit(ILGenerator gen)
4633
{
47-
throw new NotImplementedException();
34+
reference.EmitAddress(gen);
4835
}
4936
}
5037
}

src/Castle.Core/DynamicProxy/Generators/InvocationTypeGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ protected virtual void ImplementInvokeMethodOnTarget(AbstractTypeEmitter invocat
149149
}
150150

151151
invokeMethodOnTarget.CodeBuilder.AddStatement(new AssignStatement(localReference, localValue));
152-
var byRefReference = new ByRefReference(localReference);
153-
args[i] = byRefReference;
152+
var localByRef = new AddressOfExpression(localReference);
153+
args[i] = localByRef;
154154
byRefArguments[i] = localReference;
155155
}
156156
else

0 commit comments

Comments
 (0)