Skip to content

Commit 55ceada

Browse files
authored
Fix wrong processing of Interfaces in minization (#110)
***UPDATE_DEPENDENTS***
1 parent 8c57e20 commit 55ceada

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

MetadataProcessor.Core/DumpGenerator/DumpTemplates.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ internal partial class DumpTemplates
4646
{{#each InterfaceDefinitions}}
4747
InterfaceImplProps [{{ReferenceId}}]: Itf: {{Interface}}{{#newline}}
4848
{{/each}}
49-
{{#if InterfaceDefinitions}}{{#newline}}{{/if}}
5049
{{/each}}
5150
{{#if TypeDefinitions}}{{#newline}}{{/if}}
5251

MetadataProcessor.Core/nanoAssemblyBuilder.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,13 +219,24 @@ public void Minimize()
219219
foreach (var i in c.Interfaces)
220220
{
221221
// remove unused interfaces
222+
bool used = false;
223+
222224
// because we don't have an interface definition table
223225
// have to do it the hard way: search the type definition that contains the interface type
224-
var ii = _tablesContext.TypeDefinitionTable.Items.FirstOrDefault(t => t.MetadataToken == i.InterfaceType.MetadataToken);
225-
if (ii == null)
226+
foreach (var t in _tablesContext.TypeDefinitionTable.Items)
227+
{
228+
var ii1 = t.Interfaces.FirstOrDefault(ii => ii.MetadataToken == i.MetadataToken);
229+
if (ii1 != null)
230+
{
231+
used = true;
232+
233+
break;
234+
}
235+
}
236+
237+
if (!used)
226238
{
227239
interfacesToRemove.Add(i);
228-
break;
229240
}
230241
}
231242

0 commit comments

Comments
 (0)