Browse Source

PEVerify: All Classes and Methods in Avalonia.Themes.Default.dll Verified.

xamlil-debug-info
Nikita Tsukanov 7 years ago
parent
commit
5b7e18544b
  1. 10
      src/Markup/Avalonia.Markup.Xaml/XamlIl/CompilerExtensions/Transformers/AddNameScopeRegistration.cs
  2. 2
      src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github

10
src/Markup/Avalonia.Markup.Xaml/XamlIl/CompilerExtensions/Transformers/AddNameScopeRegistration.cs

@ -12,11 +12,8 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
if (node is XamlIlPropertyAssignmentNode pa
&& pa.Property.Name == "Name"
&& pa.Property.Setter.DeclaringType.FullName == "Avalonia.StyledElement")
{
return new ScopeRegistrationNode(pa);
}
return node;
}
@ -40,13 +37,15 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
var findNameScope = exts.FindMethod(m => m.Name == "FindNameScope");
var registerMethod = findNameScope.ReturnType.FindMethod(m => m.Name == "Register");
using (var nameLoc = context.GetLocal(context.Configuration.WellKnownTypes.String))
using (var targetLoc = context.GetLocal(context.Configuration.WellKnownTypes.Object))
using (var targetLoc = context.GetLocal(_property.Setter.DeclaringType))
using (var nameScopeLoc = context.GetLocal(findNameScope.ReturnType))
{
var exit = codeGen.DefineLabel();
// var target = {target}
codeGen.Stloc(targetLoc.Local);
codeGen
.Castclass(_property.Setter.DeclaringType)
.Stloc(targetLoc.Local);
// var name = {EmitName()}
context.Emit(Value, codeGen, _property.PropertyType);
@ -57,6 +56,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
.EmitCall(_property.Setter)
// var scope = target.FindNameScope()
.Ldloc(targetLoc.Local)
.Castclass(findNameScope.Parameters[0])
.EmitCall(findNameScope)
.Stloc(nameScopeLoc.Local)
// if({scope} != null) goto call;

2
src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github

@ -1 +1 @@
Subproject commit 8fcce31fad28cb24b647ca3aed90199553ed0ca4
Subproject commit ddc2490b8f0437c42c9bc4662b25c2f693255278
Loading…
Cancel
Save