Add findAny() methods

This commit is contained in:
de4dot 2011-12-28 13:24:02 +01:00
parent 91c406b2a0
commit ad59501474
3 changed files with 41 additions and 4 deletions

View File

@ -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;

View File

@ -27,6 +27,7 @@ namespace de4dot.code.renamer.asmmodules {
IEnumerable<TRef> getAll();
IEnumerable<TRef> 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);
}

View File

@ -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);