< prev index next >
src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java
Print this page
@@ -19,57 +19,70 @@
* limitations under the License.
*/
package com.sun.org.apache.bcel.internal.generic;
-import com.sun.org.apache.bcel.internal.Constants;
-import java.util.Objects;
+import com.sun.org.apache.bcel.internal.Const;
/**
* Returnaddress, the type JSR or JSR_W instructions push upon the stack.
*
* see vmspec2 3.3.3
- * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase">Enver Haase</A>
+ * @version $Id: ReturnaddressType.java 1749603 2016-06-21 20:50:19Z ggregory $
*/
public class ReturnaddressType extends Type {
public static final ReturnaddressType NO_TARGET = new ReturnaddressType();
private InstructionHandle returnTarget;
+
/**
* A Returnaddress [that doesn't know where to return to].
*/
- private ReturnaddressType(){
- super(Constants.T_ADDRESS, "<return address>");
+ private ReturnaddressType() {
+ super(Const.T_ADDRESS, "<return address>");
}
+
/**
* Creates a ReturnaddressType object with a target.
*/
- public ReturnaddressType(InstructionHandle returnTarget) {
- super(Constants.T_ADDRESS, "<return address targeting "+returnTarget+">");
+ public ReturnaddressType(final InstructionHandle returnTarget) {
+ super(Const.T_ADDRESS, "<return address targeting " + returnTarget + ">");
this.returnTarget = returnTarget;
}
+
+ /** @return a hash code value for the object.
+ */
@Override
public int hashCode() {
- return Objects.hashCode(this.returnTarget);
+ if (returnTarget == null) {
+ return 0;
+ }
+ return returnTarget.hashCode();
}
+
/**
* Returns if the two Returnaddresses refer to the same target.
*/
@Override
- public boolean equals(Object rat){
- if(!(rat instanceof ReturnaddressType))
+ public boolean equals( final Object rat ) {
+ if (!(rat instanceof ReturnaddressType)) {
return false;
-
- return ((ReturnaddressType)rat).returnTarget.equals(this.returnTarget);
}
+ final ReturnaddressType that = (ReturnaddressType) rat;
+ if (this.returnTarget == null || that.returnTarget == null) {
+ return that.returnTarget == this.returnTarget;
+ }
+ return that.returnTarget.equals(this.returnTarget);
+ }
+
/**
* @return the target of this ReturnaddressType
*/
- public InstructionHandle getTarget(){
+ public InstructionHandle getTarget() {
return returnTarget;
}
}
< prev index next >