private FindAndRemoveAnnotationResult findAndRemoveAnnotation()

in TransformCore/src/main/java/com/facebook/ads/injkit/crashshield/CrashShieldInjector.java [253:279]


  private FindAndRemoveAnnotationResult findAndRemoveAnnotation(
      List<AnnotationNode> visibleAnnotations, List<AnnotationNode> invisibleAnnotations) {
    FindAndRemoveAnnotationResult result = FindAndRemoveAnnotationResult.NOT_FOUND;

    for (List<AnnotationNode> list : Arrays.asList(visibleAnnotations, invisibleAnnotations)) {
      if (list == null) {
        continue;
      }

      Iterator<AnnotationNode> visibleIt = list.iterator();
      while (visibleIt.hasNext()) {
        String nextDesc = visibleIt.next().desc;

        if (nextDesc.equals(
            AsmNameUtils.classJavaNameToDescriptor(enableAnnotationClass.getName()))) {
          result = result.or(FindAndRemoveAnnotationResult.FOUND_AUTO_HANDLE);
          visibleIt.remove();
        } else if (nextDesc.equals(
            AsmNameUtils.classJavaNameToDescriptor(disableAnnotationClass.getName()))) {
          result = result.or(FindAndRemoveAnnotationResult.FOUND_NO_AUTO_HANDLE);
          visibleIt.remove();
        }
      }
    }

    return result;
  }