private static int compareHandle(Handle h1, Handle h2) { int d = h1.getTag() - h2.getTag(); if (d == 0) { d = h1.getOwner().compareTo(h2.getOwner()); if (d == 0) { d = h1.getName().compareTo(h2.getName()); if (d == 0) { d = h1.getDesc().compareTo(h2.getDesc()); } } } return d; }
@Override public void visitLdcInsn(Object cst) { if (cst instanceof Handle) { Handle handle = (Handle) cst; cst = new Handle( handle.getTag(), handle.getOwner(), handle.getName(), getMethodDescriptor(handle.getDesc())); } super.visitLdcInsn(cst); }