void (DataPoint data, Instruction instr, ConstantPool pool) { ListStack<VarType> stack = data.getStack(); int[][] arr = stack_impact[instr.opcode]; if (arr != null) { // simple types only int[] read = arr[0]; int[] write = arr[1]; if (read != null) { int depth = 0; for (int type : read) { depth++; if (type == CodeConstants.TYPE_LONG || type == CodeConstants.TYPE_DOUBLE) { depth++; } } stack.removeMultiple(depth); } if (write != null) { for (int type : write) { stack.push(new VarType(type)); if (type == CodeConstants.TYPE_LONG || type == CodeConstants.TYPE_DOUBLE) { stack.push(new VarType(CodeConstants.TYPE_GROUP2EMPTY)); } } } } else { // Sonderbehandlung processSpecialInstructions(data, instr, pool); } }