コード例 #1
0
 private void startTraversal(SMGObject pObject) {
   if (candidates.containsKey(pObject)) {
     // Processed already in continueTraversal
     return;
   }
   candidates.put(pObject, new HashMap<Integer, SMGSingleLinkedListCandidate>());
   for (SMGEdgeHasValue hv : smg.getHVEdges(SMGEdgeHasValueFilter.objectFilter(pObject))) {
     if (smg.isPointer(hv.getValue())) {
       SMGSingleLinkedListCandidate candidate =
           new SMGSingleLinkedListCandidate(pObject, hv.getOffset(), 1);
       candidates.get(pObject).put(hv.getOffset(), candidate);
       continueTraversal(hv.getValue(), candidate);
     }
   }
 }