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;
  }
}

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 ; } }
calculate the score for each entry in the call chain
