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); } }