diff --git a/lib/OpenLayers/Layer/Image.js b/lib/OpenLayers/Layer/Image.js index 861d2c86b1..cdf37aa0ef 100644 --- a/lib/OpenLayers/Layer/Image.js +++ b/lib/OpenLayers/Layer/Image.js @@ -68,8 +68,10 @@ OpenLayers.Layer.Image.prototype = * */ destroy: function() { - this.tile.destroy(); - this.tile = null; + if (this.tile) { + this.tile.destroy(); + this.tile = null; + } OpenLayers.Layer.prototype.destroy.apply(this, arguments); }, diff --git a/tests/Layer/test_Image.html b/tests/Layer/test_Image.html index 8763261f42..a1b38a0985 100644 --- a/tests/Layer/test_Image.html +++ b/tests/Layer/test_Image.html @@ -77,6 +77,16 @@ */ + function test_99_Layer_Image_destroy_before_use (t) { + t.plan(1); + var map = new OpenLayers.Map('map'); + layer = new OpenLayers.Layer.Image('Test', 'http://earthtrends.wri.org/images/maps/4_m_citylights_lg.gif', new OpenLayers.Bounds(-180, -88.759, 180, 88.759), new OpenLayers.Size(580, 288)); + map.addLayer(layer); + map.removeLayer(layer); + layer.destroy(); + t.ok(true, "destroy() didn't throw an error"); + } + function test_99_Layer_Image_destroy (t) { t.plan( 4 );