merge merges two similar Stack, zapping out differences.
(r *Stack)
| 544 | |
| 545 | // merge merges two similar Stack, zapping out differences. |
| 546 | func (s *Stack) merge(r *Stack) *Stack { |
| 547 | // Assumes similar stacks have the same length. |
| 548 | out := &Stack{ |
| 549 | Calls: make([]Call, len(s.Calls)), |
| 550 | Elided: s.Elided, |
| 551 | } |
| 552 | for i := range s.Calls { |
| 553 | out.Calls[i] = s.Calls[i].merge(&r.Calls[i]) |
| 554 | } |
| 555 | return out |
| 556 | } |
| 557 | |
| 558 | // less compares two Stack, where the ones that are less are more |
| 559 | // important, so they come up front. |