From ad59501474c043a757e7c58cf32cca87456843df Mon Sep 17 00:00:00 2001 From: de4dot Date: Wed, 28 Dec 2011 13:24:02 +0100 Subject: [PATCH] Add findAny() methods --- de4dot.code/renamer/Renamer.cs | 4 ++-- de4dot.code/renamer/asmmodules/RefDict.cs | 21 +++++++++++++++++++++ de4dot.code/renamer/asmmodules/TypeDef.cs | 20 ++++++++++++++++++-- 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/de4dot.code/renamer/Renamer.cs b/de4dot.code/renamer/Renamer.cs index 4c72ea9a..5a422a19 100644 --- a/de4dot.code/renamer/Renamer.cs +++ b/de4dot.code/renamer/Renamer.cs @@ -620,7 +620,7 @@ namespace de4dot.code.renamer { if (string.IsNullOrEmpty(name) || propType.FullName == "System.Void") return null; var newProp = DotNetUtils.createPropertyDefinition(name, propType, getter, setter); - var propDef = ownerType.find(newProp); + var propDef = ownerType.findAny(newProp); if (propDef != null) return propDef; @@ -825,7 +825,7 @@ namespace de4dot.code.renamer { if (string.IsNullOrEmpty(name) || eventType == null || eventType.FullName == "System.Void") return null; var newEvent = DotNetUtils.createEventDefinition(name, eventType); - var eventDef = ownerType.find(newEvent); + var eventDef = ownerType.findAny(newEvent); if (eventDef != null) return eventDef; diff --git a/de4dot.code/renamer/asmmodules/RefDict.cs b/de4dot.code/renamer/asmmodules/RefDict.cs index 238856b6..b468cc12 100644 --- a/de4dot.code/renamer/asmmodules/RefDict.cs +++ b/de4dot.code/renamer/asmmodules/RefDict.cs @@ -27,6 +27,7 @@ namespace de4dot.code.renamer.asmmodules { IEnumerable getAll(); IEnumerable getSorted(); TRef find(TMRef tmref); + TRef findAny(TMRef tmref); void add(TRef tref); void onTypesRenamed(); } @@ -52,6 +53,10 @@ namespace de4dot.code.renamer.asmmodules { return typeToDef.find(typeReference); } + public TypeDef findAny(TypeReference typeReference) { + return typeToDef.findAny(typeReference); + } + public void add(TypeDef typeDef) { typeToDef.add(typeDef.TypeDefinition, typeDef); } @@ -82,6 +87,10 @@ namespace de4dot.code.renamer.asmmodules { return fieldToDef.find(fieldReference); } + public FieldDef findAny(FieldReference fieldReference) { + return fieldToDef.findAny(fieldReference); + } + public void add(FieldDef fieldDef) { fieldToDef.add(fieldDef.FieldDefinition, fieldDef); } @@ -112,6 +121,10 @@ namespace de4dot.code.renamer.asmmodules { return methodToDef.find(methodReference); } + public MethodDef findAny(MethodReference methodReference) { + return methodToDef.findAny(methodReference); + } + public void add(MethodDef methodDef) { methodToDef.add(methodDef.MethodDefinition, methodDef); } @@ -142,6 +155,10 @@ namespace de4dot.code.renamer.asmmodules { return propToDef.find(propertyReference); } + public PropertyDef findAny(PropertyReference propertyReference) { + return propToDef.findAny(propertyReference); + } + public void add(PropertyDef propDef) { propToDef.add(propDef.PropertyDefinition, propDef); } @@ -172,6 +189,10 @@ namespace de4dot.code.renamer.asmmodules { return eventToDef.find(eventReference); } + public EventDef findAny(EventReference eventReference) { + return eventToDef.findAny(eventReference); + } + public void add(EventDef eventDef) { eventToDef.add(eventDef.EventDefinition, eventDef); } diff --git a/de4dot.code/renamer/asmmodules/TypeDef.cs b/de4dot.code/renamer/asmmodules/TypeDef.cs index 8d5829c6..f2050ab1 100644 --- a/de4dot.code/renamer/asmmodules/TypeDef.cs +++ b/de4dot.code/renamer/asmmodules/TypeDef.cs @@ -319,20 +319,36 @@ namespace de4dot.code.renamer.asmmodules { return methods.find(mr); } + public MethodDef findAny(MethodReference mr) { + return methods.findAny(mr); + } + public FieldDef find(FieldReference fr) { return fields.find(fr); } + public FieldDef findAny(FieldReference fr) { + return fields.findAny(fr); + } + public PropertyDef find(PropertyReference pr) { return properties.find(pr); } + public PropertyDef findAny(PropertyReference pr) { + return properties.findAny(pr); + } + public EventDef find(EventReference er) { return events.find(er); } + public EventDef findAny(EventReference er) { + return events.findAny(er); + } + public PropertyDef create(PropertyDefinition newProp) { - if (find(newProp) != null) + if (findAny(newProp) != null) throw new ApplicationException("Can't add a property when it's already been added"); var propDef = new PropertyDef(newProp, this, properties.Count); @@ -342,7 +358,7 @@ namespace de4dot.code.renamer.asmmodules { } public EventDef create(EventDefinition newEvent) { - if (find(newEvent) != null) + if (findAny(newEvent) != null) throw new ApplicationException("Can't add an event when it's already been added"); var eventDef = new EventDef(newEvent, this, events.Count);