- for (int i = 0;i < value.size();i++) {
- if (value.get(i).getAppNum().equals(lastWriter.get(value.get(i).getVarName()))
- && value.get(i).getValue().equals(lastValue.get(value.get(i).getVarName()))) {
- isChanged |= currentNode.getOutSet().add(value.get(i));
+ for (int i = 0;i < setSet.size();i++) {
+ String varName = setSet.get(i).getVarName();
+ Integer writer = lastWriter.get(varName);
+ String value = lastValue.get(varName);
+
+ if (setSet.get(i).getAppNum().equals(writer)
+ && setSet.get(i).getValue().equals(value)) {
+ if (outSetVarMap.containsKey(varName)) {
+ Integer hashCode = outSetVarMap.get(varName).hashCode() * 31 +
+ varName.hashCode();
+ currentNode.getOutSet().remove(hashCode);
+ }
+ isChanged |= currentNode.getOutSet().add(setSet.get(i));