--- old/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java 2017-08-08 16:06:03.547919449 -0700
+++ new/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/ReturnaddressType.java 2017-08-08 16:06:03.463915243 -0700
@@ -21,55 +21,68 @@
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 Enver Haase
+ * @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;
+ 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, "");
- }
-
- /**
- * Creates a ReturnaddressType object with a target.
- */
- public ReturnaddressType(InstructionHandle returnTarget) {
- super(Constants.T_ADDRESS, "");
+
+ /**
+ * A Returnaddress [that doesn't know where to return to].
+ */
+ private ReturnaddressType() {
+ super(Const.T_ADDRESS, "");
+ }
+
+
+ /**
+ * Creates a ReturnaddressType object with a target.
+ */
+ public ReturnaddressType(final InstructionHandle returnTarget) {
+ super(Const.T_ADDRESS, "");
this.returnTarget = returnTarget;
- }
+ }
+
- @Override
- public int hashCode() {
- return Objects.hashCode(this.returnTarget);
- }
-
- /**
- * Returns if the two Returnaddresses refer to the same target.
- */
- @Override
- public boolean equals(Object rat){
- if(!(rat instanceof ReturnaddressType))
- return false;
-
- return ((ReturnaddressType)rat).returnTarget.equals(this.returnTarget);
- }
-
- /**
- * @return the target of this ReturnaddressType
- */
- public InstructionHandle getTarget(){
- return returnTarget;
- }
+ /** @return a hash code value for the object.
+ */
+ @Override
+ public int hashCode() {
+ if (returnTarget == null) {
+ return 0;
+ }
+ return returnTarget.hashCode();
+ }
+
+
+ /**
+ * Returns if the two Returnaddresses refer to the same target.
+ */
+ @Override
+ public boolean equals( final Object rat ) {
+ if (!(rat instanceof ReturnaddressType)) {
+ return false;
+ }
+ 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() {
+ return returnTarget;
+ }
}