soot.jimple.toolkits.pointer.nativemethods
Class JavaLangReflectProxyNative

java.lang.Object
  |
  +--soot.jimple.toolkits.pointer.nativemethods.NativeMethodClass
        |
        +--soot.jimple.toolkits.pointer.nativemethods.JavaLangReflectProxyNative

public class JavaLangReflectProxyNative
extends NativeMethodClass


Constructor Summary
JavaLangReflectProxyNative(Singletons.Global g)
           
 
Method Summary
static void java_lang_reflect_Proxy_defineClass0(SootMethod method, ReferenceVariable thisVar, ReferenceVariable returnVar, ReferenceVariable[] params)
          We have to assume all possible classes will be returned.
 void simulateMethod(SootMethod method, ReferenceVariable thisVar, ReferenceVariable returnVar, ReferenceVariable[] params)
          Implements the abstract method simulateMethod.
static JavaLangReflectProxyNative v()
           
 
Methods inherited from class soot.jimple.toolkits.pointer.nativemethods.NativeMethodClass
defaultMethod
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaLangReflectProxyNative

public JavaLangReflectProxyNative(Singletons.Global g)
Method Detail

v

public static JavaLangReflectProxyNative v()

simulateMethod

public void simulateMethod(SootMethod method,
                           ReferenceVariable thisVar,
                           ReferenceVariable returnVar,
                           ReferenceVariable[] params)
Implements the abstract method simulateMethod. It distributes the request to the corresponding methods by signatures.
Overrides:
simulateMethod in class NativeMethodClass

java_lang_reflect_Proxy_defineClass0

public static void java_lang_reflect_Proxy_defineClass0(SootMethod method,
                                                        ReferenceVariable thisVar,
                                                        ReferenceVariable returnVar,
                                                        ReferenceVariable[] params)
We have to assume all possible classes will be returned. But it is still possible to make a new class. NOTE: assuming a close world, and this method should not be called. private static native java.lang.Class defineClass0(java.lang.ClassLoader, java.lang.String, byte[], int, int);