in java/clickhouse-client/src/main/java/com/epam/deltix/clickhouse/writer/WriterCodecGenerator.java [415:449]
private int initArray(MethodVisitor methodVisitor, Class<?> nestedType,
String nestedInternalName, int currentLocalVarIndex) {
loadSizeOfNestedMemberValueOnStack(methodVisitor);
if (!nestedType.isPrimitive()) {
// invoke instruction for initializing reference type array
methodVisitor.visitTypeInsn(ANEWARRAY, nestedInternalName);
} else if (nestedType.equals(long.class)) {
// invoke instruction for initializing long array
methodVisitor.visitIntInsn(NEWARRAY, T_LONG);
} else if (nestedType.equals(int.class)) {
// invoke instruction for initializing int array
methodVisitor.visitIntInsn(NEWARRAY, T_INT);
} else if (nestedType.equals(short.class)) {
// invoke instruction for initializing short array
methodVisitor.visitIntInsn(NEWARRAY, T_SHORT);
} else if (nestedType.equals(byte.class)) {
// invoke instruction for initializing byte array
methodVisitor.visitIntInsn(NEWARRAY, T_BYTE);
} else if (nestedType.equals(float.class)) {
// invoke instruction for initializing float array
methodVisitor.visitIntInsn(NEWARRAY, T_FLOAT);
} else if (nestedType.equals(double.class)) {
// invoke instruction for initializing double array
methodVisitor.visitIntInsn(NEWARRAY, T_DOUBLE);
} else if (nestedType.equals(boolean.class)) {
// invoke instruction for initializing boolean array
methodVisitor.visitIntInsn(NEWARRAY, T_BOOLEAN);
}
// store an array into the local variable #'currentLocalVarIndex'
methodVisitor.visitVarInsn(ASTORE, currentLocalVarIndex);
localVarSize++;
return ++currentLocalVarIndex;
}