(self, diff, commit, old_fname=None, new_fname=None)
| 236 | return 0 |
| 237 | |
| 238 | def _second_phase(self, diff, commit, old_fname=None, new_fname=None): |
| 239 | |
| 240 | if ((old_fname and self.fname_filter(old_fname)) or |
| 241 | (new_fname and self.fname_filter(new_fname))): |
| 242 | |
| 243 | adds, dels = self.parse_patch(diff.diff) |
| 244 | if adds is None or dels is None: |
| 245 | return -1 |
| 246 | modified_func, inv_modified_func = {}, {} |
| 247 | |
| 248 | if old_fname is not None: |
| 249 | old_root = self._get_xml_root(commit.parents[0], old_fname) |
| 250 | if old_root is None: |
| 251 | return -1 |
| 252 | |
| 253 | if self.lang == 'c': |
| 254 | modified_func = get_changed_functions( |
| 255 | *get_func_ranges_c(old_root), adds, dels) |
| 256 | elif self.lang == 'java': |
| 257 | modified_func = get_changed_functions( |
| 258 | *get_func_ranges_java(old_root), adds, dels) |
| 259 | |
| 260 | if new_fname is not None: |
| 261 | inv_adds, inv_dels = _inverse_diff_result(adds, dels) |
| 262 | new_root = self._get_xml_root(commit, new_fname) |
| 263 | if new_root is None: |
| 264 | return -1 |
| 265 | |
| 266 | if self.lang == 'c': |
| 267 | inv_modified_func = get_changed_functions( |
| 268 | *get_func_ranges_c(new_root), inv_adds, inv_dels) |
| 269 | elif self.lang == 'java': |
| 270 | inv_modified_func = get_changed_functions( |
| 271 | *get_func_ranges_java(new_root), inv_adds, inv_dels) |
| 272 | |
| 273 | for func_name in modified_func: |
| 274 | if func_name in self.G: |
| 275 | self.history[commit.hexsha][func_name] = \ |
| 276 | modified_func[func_name] |
| 277 | |
| 278 | for func_name in inv_modified_func: |
| 279 | if func_name in self.G and func_name not in modified_func: |
| 280 | self.history[commit.hexsha][func_name] = \ |
| 281 | inv_modified_func[func_name] |
| 282 | |
| 283 | def parse_patch(self, patch): |
| 284 | additions, deletions = None, None |
no test coverage detected