soot.jimple.toolkits.pointer.nativemethods
Class JavaLangReflectMethodNative

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

public class JavaLangReflectMethodNative
extends NativeMethodClass


Constructor Summary
JavaLangReflectMethodNative(Singletons.Global g)
           
 
Method Summary
static void java_lang_reflect_Method_invoke(SootMethod method, ReferenceVariable thisVar, ReferenceVariable returnVar, ReferenceVariable[] params)
          nvokes the underlying method represented by this Method object, on the specified object with the specified parameters.
 void simulateMethod(SootMethod method, ReferenceVariable thisVar, ReferenceVariable returnVar, ReferenceVariable[] params)
          Implements the abstract method simulateMethod.
static JavaLangReflectMethodNative 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

JavaLangReflectMethodNative

public JavaLangReflectMethodNative(Singletons.Global g)
Method Detail

v

public static JavaLangReflectMethodNative 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_Method_invoke

public static void java_lang_reflect_Method_invoke(SootMethod method,
                                                   ReferenceVariable thisVar,
                                                   ReferenceVariable returnVar,
                                                   ReferenceVariable[] params)
nvokes the underlying method represented by this Method object, on the specified object with the specified parameters. Individual parameters are automatically unwrapped to match primitive formal parameters, and both primitive and reference parameters are subject to widening conversions as necessary. The value returned by the underlying method is automatically wrapped in an object if it has a primitive type. Method invocation proceeds with the following steps, in order: If the underlying method is static, then the specified obj argument is ignored. It may be null. NOTE: @this is an variable pointing to method objects,