@@ -85,7 +85,7 @@ export class HorizontalBarChartRenderer extends BarChartRenderer {
85
85
buffer . yAxisMin = this . mChart . getAxis ( dataSet . axisDependency ) . axisMinimum ;
86
86
buffer . yAxisMax = this . mChart . getAxis ( dataSet . axisDependency ) . axisMaximum ;
87
87
88
- buffer . feed ( dataSet ) ;
88
+ const barsCount = buffer . feed ( dataSet ) ;
89
89
90
90
trans . pointValuesToPixel ( buffer . buffer ) ;
91
91
@@ -102,27 +102,31 @@ export class HorizontalBarChartRenderer extends BarChartRenderer {
102
102
}
103
103
104
104
const customRender = this . mChart . customRenderer ;
105
- for ( let j = 0 , pos = 0 ; j < buffer . length ; j += 4 , pos ++ ) {
106
- if ( ! this . mViewPortHandler . isInBoundsTop ( buffer . buffer [ j + 3 ] ) ) {
105
+ for ( let j = 0 , pos = 0 ; j < barsCount ; j += 1 , pos ++ ) {
106
+ const left = buffer . buffer [ j * 4 ] ;
107
+ const top = buffer . buffer [ j * 4 + 1 ] ;
108
+ const right = buffer . buffer [ j * 4 + 2 ] ;
109
+ const bottom = buffer . buffer [ j * 4 + 3 ] ;
110
+ if ( ! this . mViewPortHandler . isInBoundsTop ( bottom ) ) {
107
111
break ;
108
112
}
109
113
110
- if ( ! this . mViewPortHandler . isInBoundsBottom ( buffer . buffer [ j + 1 ] ) ) {
114
+ if ( ! this . mViewPortHandler . isInBoundsBottom ( top ) ) {
111
115
continue ;
112
116
}
113
117
if ( ! isSingleColor ) {
114
118
// Set the color for the currently drawn value. If the index
115
119
// is out of bounds, reuse colors.
116
- renderPaint . setColor ( dataSet . getColor ( j / 4 ) ) ;
120
+ renderPaint . setColor ( dataSet . getColor ( j ) ) ;
117
121
}
118
122
if ( customRender && customRender . drawBar ) {
119
- const e = dataSet . getEntryForIndex ( j / 4 ) ;
120
- customRender . drawBar ( c , e , dataSet , buffer . buffer [ j ] , buffer . buffer [ j + 1 ] , buffer . buffer [ j + 2 ] , buffer . buffer [ j + 3 ] , renderPaint ) ;
123
+ const e = buffer . entries [ j ] ;
124
+ customRender . drawBar ( c , e , dataSet , left , top , right , bottom , renderPaint ) ;
121
125
} else {
122
- c . drawRect ( buffer . buffer [ j ] , buffer . buffer [ j + 1 ] , buffer . buffer [ j + 2 ] , buffer . buffer [ j + 3 ] , renderPaint ) ;
126
+ c . drawRect ( left , top , right , bottom , renderPaint ) ;
123
127
124
128
if ( drawBorder ) {
125
- c . drawRect ( buffer . buffer [ j ] , buffer . buffer [ j + 1 ] , buffer . buffer [ j + 2 ] , buffer . buffer [ j + 3 ] , borderPaint ) ;
129
+ c . drawRect ( left , top , right , bottom , borderPaint ) ;
126
130
}
127
131
}
128
132
}
0 commit comments