コード例 #1
0
ファイル: TypeDef.cs プロジェクト: ldh0227/de4dot
        // Returns the previous method, or null if none
        public MethodDef addMethod(MethodDef ifaceMethod, MethodDef classMethod)
        {
            if (!ifaceMethodToClassMethod.ContainsKey(ifaceMethod))
                throw new ApplicationException("Could not find interface method");

            MethodDef oldMethod;
            ifaceMethodToClassMethod.TryGetValue(ifaceMethod, out oldMethod);
            ifaceMethodToClassMethod[ifaceMethod] = classMethod;
            return oldMethod;
        }
コード例 #2
0
ファイル: TypeDef.cs プロジェクト: ldh0227/de4dot
 public void addMethodIfEmpty(MethodDef ifaceMethod, MethodDef classMethod)
 {
     if (ifaceMethodToClassMethod[ifaceMethod] == null)
         addMethod(ifaceMethod, classMethod);
 }
コード例 #3
0
ファイル: TypeDef.cs プロジェクト: ldh0227/de4dot
 public void add(MethodDef m)
 {
     methods.add(m);
 }
コード例 #4
0
ファイル: TypeDef.cs プロジェクト: ldh0227/de4dot
 public void addMethodIfEmpty(TypeInfo iface, MethodDef ifaceMethod, MethodDef classMethod)
 {
     InterfaceMethodInfo info;
     var key = new TypeReferenceKey(iface.typeReference);
     if (!interfaceMethods.TryGetValue(key, out info))
         throw new ApplicationException("Could not find interface");
     info.addMethodIfEmpty(ifaceMethod, classMethod);
 }
コード例 #5
0
ファイル: TypeDef.cs プロジェクト: ldh0227/de4dot
 public MethodInst(MethodDef origMethodDef, MethodReference methodReference)
 {
     this.origMethodDef = origMethodDef;
     this.methodReference = methodReference;
 }
コード例 #6
0
ファイル: TypeDef.cs プロジェクト: ldh0227/de4dot
 // Returns the previous classMethod, or null if none
 public MethodDef addMethod(TypeInfo iface, MethodDef ifaceMethod, MethodDef classMethod)
 {
     return addMethod(iface.typeReference, ifaceMethod, classMethod);
 }
コード例 #7
0
ファイル: MethodNameScopes.cs プロジェクト: ldh0227/de4dot
 public void add(MethodDef method)
 {
     methods.Add(method);
 }
コード例 #8
0
ファイル: MethodNameScopes.cs プロジェクト: ldh0227/de4dot
 public void same(MethodDef a, MethodDef b)
 {
     merge(get(a), get(b));
 }
コード例 #9
0
ファイル: MethodNameScopes.cs プロジェクト: ldh0227/de4dot
 public MethodNameScope get(MethodDef method)
 {
     if (!method.isVirtual())
         throw new ApplicationException("Not a virtual method");
     MethodNameScope scope;
     if (!methodScopes.TryGetValue(method, out scope)) {
         methodScopes[method] = scope = new MethodNameScope();
         scope.add(method);
     }
     return scope;
 }
コード例 #10
0
ファイル: MethodNameScopes.cs プロジェクト: ldh0227/de4dot
 public void add(MethodDef methodDef)
 {
     get(methodDef);
 }