From a2cbfc0affea2a1ee9220c8df5bc06236ac77b14 Mon Sep 17 00:00:00 2001 From: Sergei Pavlov Date: Mon, 6 Nov 2023 16:44:30 -0800 Subject: [PATCH] Optimize code generated by Weaver using `.tail` prefix (#156) * Tail prefix in weaver * Revert version --- .../Xtensive.Orm.Weaver/Tasks/ImplementFieldAccessorTask.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Weaver/Xtensive.Orm.Weaver/Tasks/ImplementFieldAccessorTask.cs b/Weaver/Xtensive.Orm.Weaver/Tasks/ImplementFieldAccessorTask.cs index 006a761d90..3971cdaf74 100644 --- a/Weaver/Xtensive.Orm.Weaver/Tasks/ImplementFieldAccessorTask.cs +++ b/Weaver/Xtensive.Orm.Weaver/Tasks/ImplementFieldAccessorTask.cs @@ -1,4 +1,4 @@ -// Copyright (C) 2013 Xtensive LLC. +// Copyright (C) 2013 Xtensive LLC. // All rights reserved. // For conditions of distribution and use, see license. // Created by: Denis Krjuchkov @@ -44,6 +44,7 @@ private void ImplementSetter(ProcessorContext context) il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldstr, persistentName); il.Emit(OpCodes.Ldarg_1); + il.Emit(OpCodes.Tail); il.Emit(OpCodes.Call, accessor); il.Emit(OpCodes.Ret); } @@ -57,6 +58,7 @@ private void ImplementGetter(ProcessorContext context) var il = body.GetILProcessor(); il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldstr, persistentName); + il.Emit(OpCodes.Tail); il.Emit(OpCodes.Call, accessor); il.Emit(OpCodes.Ret); }