summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Build.Tasks/XamlCTask.cs
diff options
context:
space:
mode:
authorkingces95 <kingces95@users.noreply.github.com>2017-04-10 02:48:54 -0400
committerStephane Delcroix <stephane@delcroix.org>2017-04-10 08:48:54 +0200
commit0f57733a38b9b9cacadcc885685c3eaa543f064e (patch)
tree7a5067580ac35286f1adb305dfb2db1d0eaef9c8 /Xamarin.Forms.Build.Tasks/XamlCTask.cs
parent5ea000a76d03a5328fe18761fbdf8b05e26a170b (diff)
downloadxamarin-forms-0f57733a38b9b9cacadcc885685c3eaa543f064e.tar.gz
xamarin-forms-0f57733a38b9b9cacadcc885685c3eaa543f064e.tar.bz2
xamarin-forms-0f57733a38b9b9cacadcc885685c3eaa543f064e.zip
Do not emit implict_op if from/to are same type (#862)
Diffstat (limited to 'Xamarin.Forms.Build.Tasks/XamlCTask.cs')
-rw-r--r--Xamarin.Forms.Build.Tasks/XamlCTask.cs3
1 files changed, 3 insertions, 0 deletions
diff --git a/Xamarin.Forms.Build.Tasks/XamlCTask.cs b/Xamarin.Forms.Build.Tasks/XamlCTask.cs
index 5503ccf0..f72c6558 100644
--- a/Xamarin.Forms.Build.Tasks/XamlCTask.cs
+++ b/Xamarin.Forms.Build.Tasks/XamlCTask.cs
@@ -152,6 +152,7 @@ namespace Xamarin.Forms.Build.Tasks
else {
Logger.LogString(2, " Creating empty {0}.__InitComponentRuntime ...", typeDef.Name);
initCompRuntime = new MethodDefinition("__InitComponentRuntime", initComp.Attributes, initComp.ReturnType);
+ initCompRuntime.Body.InitLocals = true;
Logger.LogLine(2, "done.");
Logger.LogString(2, " Copying body of InitializeComponent to __InitComponentRuntime ...", typeDef.Name);
initCompRuntime.Body = new MethodBody(initCompRuntime);
@@ -160,6 +161,7 @@ namespace Xamarin.Forms.Build.Tasks
iCRIl.Append(instr);
initComp.Body.Instructions.Clear();
initComp.Body.GetILProcessor().Emit(OpCodes.Ret);
+ initComp.Body.InitLocals = true;
typeDef.Methods.Add(initCompRuntime);
Logger.LogLine(2, "done.");
}
@@ -245,6 +247,7 @@ namespace Xamarin.Forms.Build.Tasks
try {
var body = new MethodBody(initComp);
var module = body.Method.Module;
+ body.InitLocals = true;
var il = body.GetILProcessor();
il.Emit(OpCodes.Nop);