[OpenLayers-Dev] removeExcessTiles doesn't work properly

Eric Lemoine eric.lemoine at camptocamp.com
Thu May 24 02:25:19 EDT 2012


On Wed, May 23, 2012 at 11:56 PM,  <kikuchan at uranus.dti.ne.jp> wrote:
> Hi list.
>
> I've found a potential bug in OpenLayers.Layer.Grid class
> when I'm trying to make a subclass of the class.
>
> A function removeExcessTiles() doesn't work properly in following situation:
>
> 1. initGriddedTiles() founds minRows and minCols are 1, 3
> 2. then grid will be [[a, b, c]] for example.
> 3. next time of calling initGriddedTiles founds minRows and minCols are 2, 2
> 4. then grid will be [[a, b, c], [d, e]] after the do-while.
> 5. removeExcessTiles(2, 2) eliminate 'c', AND 'e' objects.
>  (because it uses 'pop' for each rows)
> 6. tileData[i].tile.draw() refers destroy()ed data, and it crashes.

This sounds like a good fix. Are your familiar with GitHub? Would you
make a pull request against the 2.12 branch for that? A new test
function in tests/Layer/Grid.html for this would also be required.

Also, I'm interested to know how you've come across this bug? In
practice does the bug trigger when resizing the browser window? The
grid

Thank you!


-- 
Eric Lemoine

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac, Cedex

Tel : 00 33 4 79 44 44 96
Mail : eric.lemoine at camptocamp.com
http://www.camptocamp.com


More information about the Dev mailing list