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