refactoring: render
assign err from s.extender to frame.err so its err check can be skipped
Vladimir Bauer
2 years ago
| 406 | 406 | |
| 407 | 407 | func (b *Bar) render(tw int) { |
| 408 | 408 | fn := func(s *bState) { |
| 409 | var rows []io.Reader | |
| 409 | frame := new(renderFrame) | |
| 410 | 410 | stat := newStatistics(tw, s) |
| 411 | 411 | r, err := s.draw(stat) |
| 412 | 412 | if err != nil { |
| 413 | 413 | for _, buf := range s.buffers { |
| 414 | 414 | buf.Reset() |
| 415 | 415 | } |
| 416 | b.frameCh <- &renderFrame{err: err} | |
| 416 | frame.err = err | |
| 417 | b.frameCh <- frame | |
| 417 | 418 | return |
| 418 | 419 | } |
| 419 | rows = append(rows, r) | |
| 420 | frame.rows = append(frame.rows, r) | |
| 420 | 421 | if s.extender != nil { |
| 421 | rows, err = s.extender(rows, stat) | |
| 422 | if err != nil { | |
| 423 | b.frameCh <- &renderFrame{err: err} | |
| 424 | return | |
| 425 | } | |
| 426 | } | |
| 427 | frame := &renderFrame{rows: rows} | |
| 422 | frame.rows, frame.err = s.extender(frame.rows, stat) | |
| 423 | } | |
| 428 | 424 | if s.completed || s.aborted { |
| 429 | 425 | frame.shutdown = s.shutdown |
| 430 | 426 | frame.rmOnComplete = s.rmOnComplete |