@Override
  public void visitMultiANewArrayInsn(String typeName, int dimCount) {
    // stack: ... dim1 dim2 dim3 ... dimN
    super.visitMultiANewArrayInsn(typeName, dimCount);
    // -> stack: ... aref
    calculateArrayLengthAndDispatch(typeName, dimCount);
  }
multianewarray gets its very own visit method in the ASM framework, so we hook it here. This
bytecode is different from most in that it consumes a variable number of stack elements during
execution. The number of stack elements consumed is specified by the dimCount operand.
src/main/java/com/google/monitoring/runtime/instrumentation/AllocationMethodAdapter.java