コード例 #1
0
  protected Value marshalValueObjectToNative(
      Function fn,
      MarshalerMethod marshalerMethod,
      Type nativeType,
      Value env,
      Value object,
      long flags) {

    Invokestatic invokestatic = marshalerMethod.getInvokeStatic(sootMethod.getDeclaringClass());
    trampolines.add(invokestatic);
    Value result = call(fn, invokestatic.getFunctionRef(), env, object, new IntegerConstant(flags));
    return marshalPrimitiveToNative(fn, marshalerMethod.getMethod(), result);
  }
コード例 #2
0
  protected Value marshalNativeToValueObject(
      Function fn,
      MarshalerMethod marshalerMethod,
      Value env,
      String valueClassName,
      Value nativeValue,
      long flags) {

    Invokestatic invokeToObject = marshalerMethod.getInvokeStatic(sootMethod.getDeclaringClass());
    trampolines.add(invokeToObject);

    Value valueClass = ldcClass(fn, valueClassName, env);

    nativeValue = marshalNativeToPrimitive(fn, marshalerMethod.getMethod(), 1, nativeValue);

    return call(
        fn,
        invokeToObject.getFunctionRef(),
        env,
        valueClass,
        nativeValue,
        new IntegerConstant(flags));
  }