Show More
@@ -470,6 +470,25 class marker(object): | |||||
470 | """The flags field of the marker""" |
|
470 | """The flags field of the marker""" | |
471 | return self._data[2] |
|
471 | return self._data[2] | |
472 |
|
472 | |||
|
473 | @util.nogc | |||
|
474 | def _addsuccessors(successors, markers): | |||
|
475 | for mark in markers: | |||
|
476 | successors.setdefault(mark[0], set()).add(mark) | |||
|
477 | ||||
|
478 | @util.nogc | |||
|
479 | def _addprecursors(precursors, markers): | |||
|
480 | for mark in markers: | |||
|
481 | for suc in mark[1]: | |||
|
482 | precursors.setdefault(suc, set()).add(mark) | |||
|
483 | ||||
|
484 | @util.nogc | |||
|
485 | def _addchildren(children, markers): | |||
|
486 | for mark in markers: | |||
|
487 | parents = mark[5] | |||
|
488 | if parents is not None: | |||
|
489 | for p in parents: | |||
|
490 | children.setdefault(p, set()).add(mark) | |||
|
491 | ||||
473 | def _checkinvalidmarkers(obsstore): |
|
492 | def _checkinvalidmarkers(obsstore): | |
474 | """search for marker with invalid data and raise error if needed |
|
493 | """search for marker with invalid data and raise error if needed | |
475 |
|
494 | |||
@@ -604,18 +623,12 class obsstore(object): | |||||
604 | version, markers = _readmarkers(data) |
|
623 | version, markers = _readmarkers(data) | |
605 | return self.add(transaction, markers) |
|
624 | return self.add(transaction, markers) | |
606 |
|
625 | |||
607 | @util.nogc |
|
|||
608 | def _load(self, markers): |
|
626 | def _load(self, markers): | |
609 | for mark in markers: |
|
627 | markers = list(markers) # to allow repeated iteration | |
610 |
|
|
628 | self._all.extend(markers) | |
611 | pre, sucs = mark[:2] |
|
629 | _addsuccessors(self.successors, markers) | |
612 | self.successors.setdefault(pre, set()).add(mark) |
|
630 | _addprecursors(self.precursors, markers) | |
613 | for suc in sucs: |
|
631 | _addchildren(self.children, markers) | |
614 | self.precursors.setdefault(suc, set()).add(mark) |
|
|||
615 | parents = mark[5] |
|
|||
616 | if parents is not None: |
|
|||
617 | for p in parents: |
|
|||
618 | self.children.setdefault(p, set()).add(mark) |
|
|||
619 | _checkinvalidmarkers(self) |
|
632 | _checkinvalidmarkers(self) | |
620 |
|
633 | |||
621 | def relevantmarkers(self, nodes): |
|
634 | def relevantmarkers(self, nodes): |
General Comments 0
You need to be logged in to leave comments.
Login now