Reset the dnlib TypeDef find cache after reordering a module
parent
46b2e0c54e
commit
50711591e0
|
|
@ -67,6 +67,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
Reorder(type.Properties, p => !_renamePolicy.NeedRename(p));
|
Reorder(type.Properties, p => !_renamePolicy.NeedRename(p));
|
||||||
Reorder(type.Events, e => !_renamePolicy.NeedRename(e));
|
Reorder(type.Events, e => !_renamePolicy.NeedRename(e));
|
||||||
}
|
}
|
||||||
|
mod.ResetTypeDefFindCache();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,13 @@ static class Program
|
||||||
var before = Snapshot(Load(dll));
|
var before = Snapshot(Load(dll));
|
||||||
|
|
||||||
var mod1 = Load(dll);
|
var mod1 = Load(dll);
|
||||||
|
mod1.EnableTypeDefFindCache = true;
|
||||||
|
var primed = mod1.Find("Fx.Plain01", false);
|
||||||
|
var primedEnumerator = mod1.GetTypes().GetEnumerator();
|
||||||
|
primedEnumerator.MoveNext();
|
||||||
new MemberReorder(1234, new AllowAll()).Process(new List<ModuleDef> { mod1 });
|
new MemberReorder(1234, new AllowAll()).Process(new List<ModuleDef> { mod1 });
|
||||||
|
Check(primed != null && mod1.Find("Fx.Plain01", false) != null
|
||||||
|
&& mod1.Find("Fx2.PlainHost", false) != null, "TypeDef find cache still resolves after reordering");
|
||||||
var after1 = Snapshot(mod1);
|
var after1 = Snapshot(mod1);
|
||||||
|
|
||||||
var mod2 = Load(dll);
|
var mod2 = Load(dll);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue