Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ AddressOfWriteBackCore() [2/2]

WriteBack System.Linq.Expressions.Compiler.LambdaCompiler.AddressOfWriteBackCore ( MemberExpression node)
inlineprivate

Definition at line 289 of file LambdaCompiler.cs.

290 {
292 Type type = null;
293 if (node.Expression != null)
294 {
295 EmitInstance(node.Expression, out type);
298 }
300 EmitCall(type, pi.GetGetMethod(nonPublic: true));
304 return delegate(LambdaCompiler @this)
305 {
306 if (instanceLocal != null)
307 {
309 @this.FreeLocal(instanceLocal);
310 }
312 @this.FreeLocal(valueLocal);
313 @this.EmitCall(instanceLocal?.LocalType, pi.GetSetMethod(nonPublic: true));
314 };
315 }
void EmitInstance(Expression instance, out Type type)
void EmitCall(Type objectType, MethodInfo method)
LambdaCompiler(AnalyzedTree tree, LambdaExpression lambda)
virtual void Emit(OpCode opcode)
static readonly OpCode Ldloca
Definition OpCodes.cs:427
static readonly OpCode Stloc
Definition OpCodes.cs:429
static readonly OpCode Ldloc
Definition OpCodes.cs:425
static readonly OpCode Dup
Definition OpCodes.cs:77

References System.Linq.Expressions.Compiler.LambdaCompiler._ilg, System.Reflection.Emit.OpCodes.Dup, System.Reflection.Emit.ILGenerator.Emit(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitCall(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitInstance(), System.Linq.Expressions.Compiler.LambdaCompiler.FreeLocal(), System.Linq.Expressions.Compiler.LambdaCompiler.GetInstanceLocal(), System.Linq.Expressions.Compiler.LambdaCompiler.GetLocal(), System.Reflection.Emit.OpCodes.Ldloc, System.Reflection.Emit.OpCodes.Ldloca, System.Reflection.Emit.OpCodes.Stloc, and System.type.

Referenced by System.Linq.Expressions.Compiler.LambdaCompiler.AddressOfWriteBack(), and System.Linq.Expressions.Compiler.LambdaCompiler.AddressOfWriteBack().