/** Calculate the score for each entry in the call chain * */
 public void calculate_scores() {
   score = 0;
   if (contents.length == 0) {
     API api = API.v();
     Set<InfoKind> source = api.getSourceInfoKinds(method);
     Set<InfoKind> sink = api.getSinkInfoKinds(method);
     if (is_system(method)) {
       if (api.isSafeMethod(method)) score = 0;
       else if (api.isSpecMethod(method)) score = 5;
       else if (api.isBannedMethod(method)) score = 6;
       if (!source.isEmpty()) score += 1;
       else if (!sink.isEmpty()) score += 2;
     }
     return;
   }
   for (SourceCallChainInfo cci : contents) {
     cci.calculate_scores();
     calls += cci.calls;
     syscalls += cci.syscalls;
     if (cci.score > score) score = cci.score;
   }
 }