Skip to content

Commit

Permalink
Fix edge case
Browse files Browse the repository at this point in the history
  • Loading branch information
Anand Thakker committed Aug 18, 2016
1 parent 194af3b commit 927c8d9
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions js/data/bucket.js
Original file line number Diff line number Diff line change
Expand Up @@ -339,8 +339,11 @@ Bucket.prototype.populatePaintArrays = function(interfaceName, globalProperties,
this._featureIndexToArrayRange[2 * featureIndex + 1] = endVertex;
}

// handle edge case where there's nothing to do
if (endVertex <= startVertex) return;

var startGroup = Math.floor(startVertex / ArrayGroup.MAX_VERTEX_ARRAY_LENGTH);
var endGroup = Math.floor(endVertex / ArrayGroup.MAX_VERTEX_ARRAY_LENGTH);
var endGroup = Math.floor((endVertex - 1) / ArrayGroup.MAX_VERTEX_ARRAY_LENGTH);
for (var l = 0; l < this.childLayers.length; l++) {
var layer = this.childLayers[l];
var groups = this.arrayGroups[interfaceName];
Expand All @@ -350,8 +353,16 @@ Bucket.prototype.populatePaintArrays = function(interfaceName, globalProperties,
var length = group.layoutVertexArray.length;
var paintArray = group.paintVertexArrays[layer.id];

// start vertex index (inclusive)
var start = g === startGroup ? startVertex % ArrayGroup.MAX_VERTEX_ARRAY_LENGTH : 0;
var end = g === endGroup ? endVertex % (1 + ArrayGroup.MAX_VERTEX_ARRAY_LENGTH) : length;
// end vertex index (exclusive)
var end;
if (g === endGroup) {
end = endVertex % ArrayGroup.MAX_VERTEX_ARRAY_LENGTH;
if (end === 0) end = ArrayGroup.MAX_VERTEX_ARRAY_LENGTH;
} else {
end = length;
}
paintArray.resize(end);

var attributes = this.paintAttributes[interfaceName][layer.id].attributes;
Expand Down

0 comments on commit 927c8d9

Please sign in to comment.