--- old/src/java.base/share/classes/jdk/internal/org/objectweb/asm/Handle.java 2016-01-22 11:39:34.043042591 -0800 +++ new/src/java.base/share/classes/jdk/internal/org/objectweb/asm/Handle.java 2016-01-22 11:39:33.816031205 -0800 @@ -93,6 +93,11 @@ */ final String desc; + /* + * indicator of static method of interface + */ + final boolean intfs; + /** * Constructs a new field or method handle. * @@ -114,11 +119,49 @@ * the descriptor of the field or method designated by this * handle. */ + public Handle(int tag, String owner, String name, String desc) { this.tag = tag; this.owner = owner; this.name = name; this.desc = desc; + this.intfs = false; + } + + /** + * Returns the kind of field or method designated by this handle. + * + * @return {@link Opcodes#H_GETFIELD}, {@link Opcodes#H_GETSTATIC}, + /** + * Constructs a new field or method handle. + * + * @param tag + * the kind of field or method designated by this Handle. Must be + * {@link Opcodes#H_GETFIELD}, {@link Opcodes#H_GETSTATIC}, + * {@link Opcodes#H_PUTFIELD}, {@link Opcodes#H_PUTSTATIC}, + * {@link Opcodes#H_INVOKEVIRTUAL}, + * {@link Opcodes#H_INVOKESTATIC}, + * {@link Opcodes#H_INVOKESPECIAL}, + * {@link Opcodes#H_NEWINVOKESPECIAL} or + * {@link Opcodes#H_INVOKEINTERFACE}. + * @param owner + * the internal name of the class that owns the field or method + * designated by this handle. + * @param name + * the name of the field or method designated by this handle. + * @param desc + * the descriptor of the field or method designated by this + * handle. + * @param intfs + * the indicator of static method in interface + */ + + public Handle(int tag, String owner, String name, String desc, boolean intfs) { + this.tag = tag; + this.owner = owner; + this.name = name; + this.desc = desc; + this.intfs = (tag == Opcodes.H_INVOKESTATIC) && intfs; } /** @@ -164,6 +207,13 @@ return desc; } + /** + * Return if it is pointing to interface static method + */ + public boolean getIntfs() { + return intfs; + } + @Override public boolean equals(Object obj) { if (obj == this) {