code: public static void pre(OpcodeStack stack, int opcode) {
          if (sawGOTO) {
              return;
          }
          sawGOTO = (opcode == Const.GOTO) || (opcode == Const.GOTO_W);
          if (sawGOTO) {
              int depth = stack.getStackDepth();
              if (depth > 0) {
                  userValues.clear();
                  for (int i = 0; i < depth; i++) {
                      OpcodeStack.Item item = stack.getStackItem(i);
                      userValues.add(item.getUserValue());
                  }
              }
          }
      }
docs: called before the execution of the parent OpcodeStack.sawOpcode() to save user values if the opcode is a GOTO or GOTO_W.
  
  @param stack
  the OpcodeStack with the items containing user values
  @param opcode
  the opcode currently seen