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