private static ObjectParameterInfo getParameterInfo(Signature signature, int i) { if (signature.getParameterCount() <= i) { return null; } Type type = signature.getParameterType(i); int flags = 0; NativeType nativeType = type instanceof MappedType ? ((MappedType) type).getRealType().getNativeType() : type.getNativeType(); switch (nativeType) { case BUFFER_IN: case STRING: case TRANSIENT_STRING: flags |= ObjectParameterInfo.IN | ObjectParameterInfo.NULTERMINATE; break; case BUFFER_OUT: flags |= ObjectParameterInfo.OUT | ObjectParameterInfo.CLEAR; break; case POINTER: case BUFFER_INOUT: flags |= ObjectParameterInfo.IN | ObjectParameterInfo.OUT | ObjectParameterInfo.CLEAR | ObjectParameterInfo.NULTERMINATE; break; default: return null; } return ObjectParameterInfo.create(i, ObjectParameterInfo.ARRAY, ObjectParameterInfo.BYTE, flags); } private static CachingCallSite getParameterCallSite(Signature signature, int parameterIndex) {
private static ObjectParameterInfo getParameterInfo(Signature signature, int i) { if (signature.getParameterCount() <= i) { return null; } Type type = signature.getParameterType(i); int flags = 0; NativeType nativeType = type instanceof MappedType ? ((MappedType) type).getRealType().getNativeType() : type.getNativeType(); switch (nativeType) { case BUFFER_IN: case STRING: case TRANSIENT_STRING: flags |= ObjectParameterInfo.IN | ObjectParameterInfo.NULTERMINATE; break; case BUFFER_OUT: flags |= ObjectParameterInfo.OUT | ObjectParameterInfo.CLEAR; break; case POINTER: case BUFFER_INOUT: flags |= ObjectParameterInfo.IN | ObjectParameterInfo.OUT | ObjectParameterInfo.CLEAR | ObjectParameterInfo.NULTERMINATE; break; default: return null; } return ObjectParameterInfo.create(i, ObjectParameterInfo.ARRAY, ObjectParameterInfo.BYTE, flags); } private static CachingCallSite getParameterCallSite(Signature signature, int parameterIndex) {
private static ObjectParameterInfo getParameterInfo(Signature signature, int i) { if (signature.getParameterCount() <= i) { return null; } Type type = signature.getParameterType(i); int flags = 0; NativeType nativeType = type instanceof MappedType ? ((MappedType) type).getRealType().getNativeType() : type.getNativeType(); switch (nativeType) { case BUFFER_IN: case STRING: case TRANSIENT_STRING: flags |= ObjectParameterInfo.IN | ObjectParameterInfo.NULTERMINATE; break; case BUFFER_OUT: flags |= ObjectParameterInfo.OUT | ObjectParameterInfo.CLEAR; break; case POINTER: case BUFFER_INOUT: flags |= ObjectParameterInfo.IN | ObjectParameterInfo.OUT | ObjectParameterInfo.CLEAR | ObjectParameterInfo.NULTERMINATE; break; default: return null; } return ObjectParameterInfo.create(i, ObjectParameterInfo.ARRAY, ObjectParameterInfo.BYTE, flags); } private static CachingCallSite getParameterCallSite(Signature signature, int parameterIndex) {
private static ObjectParameterInfo getParameterInfo(Signature signature, int i) { if (signature.getParameterCount() <= i) { return null; } Type type = signature.getParameterType(i); int flags = 0; NativeType nativeType = type instanceof MappedType ? ((MappedType) type).getRealType().getNativeType() : type.getNativeType(); switch (nativeType) { case BUFFER_IN: case STRING: case TRANSIENT_STRING: flags |= ObjectParameterInfo.IN | ObjectParameterInfo.NULTERMINATE; break; case BUFFER_OUT: flags |= ObjectParameterInfo.OUT | ObjectParameterInfo.CLEAR; break; case POINTER: case BUFFER_INOUT: flags |= ObjectParameterInfo.IN | ObjectParameterInfo.OUT | ObjectParameterInfo.CLEAR | ObjectParameterInfo.NULTERMINATE; break; default: return null; } return ObjectParameterInfo.create(i, ObjectParameterInfo.ARRAY, ObjectParameterInfo.BYTE, flags); } private static CachingCallSite getParameterCallSite(Signature signature, int parameterIndex) {
mv.aload(0); ObjectParameterInfo info = ObjectParameterInfo.create(i, AsmUtil.getNativeArrayFlags(parameterTypes[i].annotations()));
mv.aload(0); ObjectParameterInfo info = ObjectParameterInfo.create(i, AsmUtil.getNativeArrayFlags(parameterTypes[i].annotations()));
mv.aload(0); ObjectParameterInfo info = ObjectParameterInfo.create(i, AsmUtil.getNativeArrayFlags(parameterTypes[i].annotations()));
mv.aload(strategies[i]); ObjectParameterInfo info = ObjectParameterInfo.create(i, AsmUtil.getNativeArrayFlags(parameterTypes[i].annotations()));
mv.aload(strategies[i]); ObjectParameterInfo info = ObjectParameterInfo.create(i, AsmUtil.getNativeArrayFlags(parameterTypes[i].annotations()));
mv.aload(strategies[i]); ObjectParameterInfo info = ObjectParameterInfo.create(i, AsmUtil.getNativeArrayFlags(parameterTypes[i].annotations()));