Bug 184928 - [variables] stepping with logical structures loses selection
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIPlaceholderVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIPlaceholderVariable.java
index feec65b..ac1df84 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIPlaceholderVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIPlaceholderVariable.java
@@ -213,7 +213,7 @@
public boolean equals(Object obj) {
if (obj instanceof JDIPlaceholderVariable) {
JDIPlaceholderVariable var = (JDIPlaceholderVariable)obj;
- return var.getName().equals(getName()) && var.getValue().equals(getValue());
+ return var.getName().equals(getName());
}
return false;
}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java
index e55488e..452f8d0 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java
@@ -182,7 +182,7 @@
public boolean equals(Object obj) {
if (obj instanceof JDIArrayEntryVariable) {
JDIArrayEntryVariable entry = (JDIArrayEntryVariable)obj;
- return entry.getArrayReference().equals(getArrayReference()) &&
+ return entry.getArrayReference().type().equals(getArrayReference().type()) &&
entry.getIndex() == getIndex();
}
return false;
@@ -192,7 +192,7 @@
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
- return getArrayReference().hashCode() + getIndex();
+ return getArrayReference().type().hashCode() + getIndex();
}
}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIFieldVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIFieldVariable.java
index 1665fea..7980aac 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIFieldVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIFieldVariable.java
@@ -279,9 +279,6 @@
public boolean equals(Object o) {
if (o instanceof JDIFieldVariable) {
JDIFieldVariable f = (JDIFieldVariable)o;
- if (fObject != null) {
- return fObject.equals(f.fObject) && f.fField.equals(fField);
- }
return f.fField.equals(fField);
}
return false;
@@ -291,10 +288,7 @@
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
- if (fObject != null) {
- return fField.hashCode() + fObject.hashCode();
- }
- return fField.hashCode();
+ return fField.hashCode() + fType.hashCode();
}
/* (non-Javadoc)