]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Cache getScaleForId() calls in the line controller (#6250)
authorBen McCann <322311+benmccann@users.noreply.github.com>
Wed, 8 May 2019 06:08:02 +0000 (23:08 -0700)
committerSimon Brunel <simonbrunel@users.noreply.github.com>
Wed, 8 May 2019 06:08:02 +0000 (08:08 +0200)
src/controllers/controller.line.js

index c671d65793355630336ba7f47af0a964ed282cbf..759db4c7e72a4501ba65689965af827224fd1ce3 100644 (file)
@@ -41,11 +41,13 @@ module.exports = DatasetController.extend({
                var line = meta.dataset;
                var points = meta.data || [];
                var options = me.chart.options;
-               var scale = me.getScaleForId(meta.yAxisID);
                var dataset = me.getDataset();
                var showLine = me._showLine = valueOrDefault(me._config.showLine, options.showLines);
                var i, ilen;
 
+               me._xScale = me.getScaleForId(meta.xAxisID);
+               me._yScale = me.getScaleForId(meta.yAxisID);
+
                // Update Line
                if (showLine) {
                        // Compatibility: If the properties are defined with only the old name, use those values
@@ -54,7 +56,7 @@ module.exports = DatasetController.extend({
                        }
 
                        // Utility
-                       line._scale = scale;
+                       line._scale = me._yScale;
                        line._datasetIndex = me.index;
                        // Data
                        line._children = points;
@@ -86,8 +88,8 @@ module.exports = DatasetController.extend({
                var dataset = me.getDataset();
                var datasetIndex = me.index;
                var value = dataset.data[index];
-               var yScale = me.getScaleForId(meta.yAxisID);
-               var xScale = me.getScaleForId(meta.xAxisID);
+               var xScale = me._xScale;
+               var yScale = me._yScale;
                var lineModel = meta.dataset._model;
                var x, y;
 
@@ -227,8 +229,7 @@ module.exports = DatasetController.extend({
        calculatePointY: function(value, index, datasetIndex) {
                var me = this;
                var chart = me.chart;
-               var meta = me.getMeta();
-               var yScale = me.getScaleForId(meta.yAxisID);
+               var yScale = me._yScale;
                var sumPos = 0;
                var sumNeg = 0;
                var i, ds, dsMeta;