Browse Source

Warn in case of hash collision when looking at paths

Baglio Tabifata 4 years ago
parent
commit
42877e9f31
1 changed files with 7 additions and 0 deletions
  1. 7 0
      src/net/hkzlab/dupal/boardio/DuPALAnalyzer.java

+ 7 - 0
src/net/hkzlab/dupal/boardio/DuPALAnalyzer.java

@@ -237,6 +237,13 @@ public class DuPALAnalyzer {
                         int path_hash = ((start_ms.rpin_status * 31) + mStates[ms_idx].rpin_status);
                         int path_hash = ((start_ms.rpin_status * 31) + mStates[ms_idx].rpin_status);
                         StateLink[] sll = pathMap.get(Integer.valueOf(path_hash));
                         StateLink[] sll = pathMap.get(Integer.valueOf(path_hash));
 
 
+                        if(sll != null) {
+                            if(sll[sll.length-1].destMS != mStates[ms_idx]) {
+                                logger.warn("Got an hash collision trying to reach ["+mStates[ms_idx]+"] from ["+start_ms+"]");
+                                sll = null;
+                            }
+                        }
+
                         if(sll == null) {
                         if(sll == null) {
                             sll = internal_searchPath(start_ms, mStates[ms_idx]);
                             sll = internal_searchPath(start_ms, mStates[ms_idx]);
                             if (sll != null) pathMap.put(Integer.valueOf(path_hash), sll);
                             if (sll != null) pathMap.put(Integer.valueOf(path_hash), sll);