code: @Override
      public void visitClassContext(ClassContext classContext) {
          try {
              String clsName = classContext.getJavaClass().getClassName();
              isInnerClass = clsName.indexOf(Values.INNER_CLASS_SEPARATOR) >= 0;
  
              clsSignature = SignatureUtils.classToSignature(clsName);
              stack = new OpcodeStack();
              localSpecialObjects = new HashMap<>();
              fieldSpecialObjects = new HashMap<>();
              super.visitClassContext(classContext);
  
              if (!isInnerClass && !fieldSpecialObjects.isEmpty()) {
  
                  for (Map.Entry<String, String> entry : fieldSpecialObjects.entrySet()) {
                      String fieldName = entry.getKey();
                      String signature = entry.getValue();
                      bugReporter.reportBug(
                              makeFieldBugInstance().addClass(this).addField(clsName, fieldName, signature, false));
                  }
              }
          } finally {
              stack = null;
              localSpecialObjects = null;
              fieldSpecialObjects = null;
          }
      }
docs: overrides the visitor to initialize and tear down the opcode stack
  
  @param classContext the context object of the currently parsed class