abstract class AbstractFastNumericMethodGenerator extends BaseMethodGenerator
Modifier and Type | Field and Description |
---|---|
(package private) static java.util.Map<java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy>,java.lang.reflect.Method> |
STRATEGY_ADDRESS_METHODS |
(package private) static java.util.Map<java.lang.Class,java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy>> |
STRATEGY_PARAMETER_TYPES |
Constructor and Description |
---|
AbstractFastNumericMethodGenerator() |
Modifier and Type | Method and Description |
---|---|
private static void |
addStrategyParameterType(java.util.Map<java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy>,java.lang.reflect.Method> map,
java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy> strategyClass,
java.lang.Class parameterType) |
(package private) static int |
emitDirectCheck(SkinnyMethodAdapter mv,
java.lang.Class javaParameterClass,
java.lang.Class nativeIntType,
LocalVariable parameter,
LocalVariable objCount,
int pointerCount) |
(package private) static void |
emitParameterStrategyAddress(SkinnyMethodAdapter mv,
java.lang.Class nativeIntType,
java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy> strategyClass,
LocalVariable strategy,
LocalVariable parameter) |
(package private) static java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy> |
emitParameterStrategyLookup(SkinnyMethodAdapter mv,
java.lang.Class javaParameterType) |
void |
generate(AsmBuilder builder,
SkinnyMethodAdapter mv,
LocalVariableAllocator localVariableAllocator,
com.kenai.jffi.CallContext callContext,
ResultType resultType,
ParameterType[] parameterTypes,
boolean ignoreError) |
(package private) abstract java.lang.String |
getInvokerMethodName(ResultType resultType,
ParameterType[] parameterTypes,
boolean ignoreErrno) |
(package private) abstract java.lang.String |
getInvokerSignature(int parameterCount,
java.lang.Class nativeIntType) |
(package private) abstract java.lang.Class |
getInvokerType() |
(package private) static java.lang.String |
getObjectParameterMethodName(int parameterCount) |
(package private) static java.lang.String |
getObjectParameterMethodSignature(int parameterCount,
int pointerCount) |
(package private) static boolean |
hasPointerParameterStrategy(java.lang.Class javaType) |
emitEpilogue, emitPostInvoke, generate, isPostInvokeRequired, loadAndConvertParameter
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
isSupported
static final java.util.Map<java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy>,java.lang.reflect.Method> STRATEGY_ADDRESS_METHODS
static final java.util.Map<java.lang.Class,java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy>> STRATEGY_PARAMETER_TYPES
public void generate(AsmBuilder builder, SkinnyMethodAdapter mv, LocalVariableAllocator localVariableAllocator, com.kenai.jffi.CallContext callContext, ResultType resultType, ParameterType[] parameterTypes, boolean ignoreError)
generate
in class BaseMethodGenerator
private static void addStrategyParameterType(java.util.Map<java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy>,java.lang.reflect.Method> map, java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy> strategyClass, java.lang.Class parameterType)
static boolean hasPointerParameterStrategy(java.lang.Class javaType)
static java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy> emitParameterStrategyLookup(SkinnyMethodAdapter mv, java.lang.Class javaParameterType)
static void emitParameterStrategyAddress(SkinnyMethodAdapter mv, java.lang.Class nativeIntType, java.lang.Class<? extends com.kenai.jffi.ObjectParameterStrategy> strategyClass, LocalVariable strategy, LocalVariable parameter)
static int emitDirectCheck(SkinnyMethodAdapter mv, java.lang.Class javaParameterClass, java.lang.Class nativeIntType, LocalVariable parameter, LocalVariable objCount, int pointerCount)
static java.lang.String getObjectParameterMethodName(int parameterCount)
static java.lang.String getObjectParameterMethodSignature(int parameterCount, int pointerCount)
abstract java.lang.String getInvokerMethodName(ResultType resultType, ParameterType[] parameterTypes, boolean ignoreErrno)
abstract java.lang.String getInvokerSignature(int parameterCount, java.lang.Class nativeIntType)
abstract java.lang.Class getInvokerType()