From 5bc4be5d7dfde613e7eb745a3004143f7b165d2a Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Mon, 12 Jul 2021 17:16:52 +0300 Subject: [PATCH] Guard against "Cannot read property '_dpiScale' of undefined" Seen from these three locations in "make perf-test". Signed-off-by: Tor Lillqvist Change-Id: I7f9fc4a073f583647e02427033fbd60c7c919a8e --- loleaflet/src/layer/tile/CanvasTileLayer.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/loleaflet/src/layer/tile/CanvasTileLayer.js b/loleaflet/src/layer/tile/CanvasTileLayer.js index c42a061009..99b7b9ff0d 100644 --- a/loleaflet/src/layer/tile/CanvasTileLayer.js +++ b/loleaflet/src/layer/tile/CanvasTileLayer.js @@ -3477,8 +3477,9 @@ L.CanvasTileLayer = L.Layer.extend({ // change previous selections viewSelection.setPointSet(viewPointSet); } else { + var scale = (this._painter ? this._painter._dpiScale : 1); viewSelection = new CSelections(viewPointSet, this._canvasOverlay, - this._painter._dpiScale, this._selectionsDataDiv, this._map, true, viewId); + scale, this._selectionsDataDiv, this._map, true, viewId); this._viewSelections[viewId].selection = viewSelection; } } @@ -5221,15 +5222,17 @@ L.CanvasTileLayer = L.Layer.extend({ }, _twipsToCssPixels: function (twips) { + var scale = (this._painter ? this._painter._dpiScale : 1); return new L.Point( - (twips.x / this._tileWidthTwips) * (this._tileSize / this._painter._dpiScale), - (twips.y / this._tileHeightTwips) * (this._tileSize / this._painter._dpiScale)); + (twips.x / this._tileWidthTwips) * (this._tileSize / scale), + (twips.y / this._tileHeightTwips) * (this._tileSize / scale)); }, _cssPixelsToTwips: function (pixels) { + var scale = (this._painter ? this._painter._dpiScale : 1); return new L.Point( - ((pixels.x * this._painter._dpiScale) / this._tileSize) * this._tileWidthTwips, - ((pixels.y * this._painter._dpiScale) / this._tileSize) * this._tileHeightTwips); + ((pixels.x * scale) / this._tileSize) * this._tileWidthTwips, + ((pixels.y * scale) / this._tileSize) * this._tileHeightTwips); }, _twipsToLatLng: function (twips, zoom) {