Ejemplo n.º 1
0
  public void visitProgramClass(ProgramClass programClass) {
    int[] interfaces = programClass.u2interfaces;
    int interfacesCount = programClass.u2interfacesCount;

    if (interfacesCount > 1) {
      // Sort the interfaces.
      Arrays.sort(interfaces, 0, interfacesCount);

      // Remove any duplicate entries.
      int newInterfacesCount = 0;
      int previousInterfaceIndex = 0;
      for (int index = 0; index < interfacesCount; index++) {
        int interfaceIndex = interfaces[index];

        // Isn't this a duplicate of the previous interface?
        if (interfaceIndex != previousInterfaceIndex) {
          interfaces[newInterfacesCount++] = interfaceIndex;

          // Remember the interface.
          previousInterfaceIndex = interfaceIndex;
        }
      }

      programClass.u2interfacesCount = newInterfacesCount;

      // Update the signature, if any
      programClass.attributesAccept(this);
    }
  }