OpenLayers OpenLayers

Changeset 5899

Show
Ignore:
Timestamp:
01/25/08 18:46:03 (10 months ago)
Author:
euzuro
Message:

be more forgiving in removeMarker() -- do not cause script error if marker has already been removed r=cr5 (Closes #1152)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/openlayers/lib/OpenLayers/Layer/Markers.js

    r5614 r5899  
    121121     */ 
    122122    removeMarker: function(marker) { 
    123         OpenLayers.Util.removeItem(this.markers, marker); 
    124         if ((marker.icon != null) && (marker.icon.imageDiv != null) && 
    125             (marker.icon.imageDiv.parentNode == this.div) ) { 
    126             this.div.removeChild(marker.icon.imageDiv);     
    127             marker.drawn = false; 
     123        if (this.markers && this.markers.length) { 
     124            OpenLayers.Util.removeItem(this.markers, marker); 
     125            if ((marker.icon != null) && (marker.icon.imageDiv != null) && 
     126                (marker.icon.imageDiv.parentNode == this.div) ) { 
     127                this.div.removeChild(marker.icon.imageDiv);     
     128                marker.drawn = false; 
     129            } 
    128130        } 
    129131    }, 
  • trunk/openlayers/tests/Layer/test_Markers.html

    r5509 r5899  
    2424    } 
    2525    function test_98_Layer_Markers_addMarker_removeMarker (t) { 
    26         t.plan( 3 ); 
     26        t.plan( 4 ); 
    2727 
    2828        var map = new OpenLayers.Map('map'); 
     
    4141        layer.addMarker(marker); 
    4242        t.ok(  marker.icon.imageDiv.parentNode == layer.div, "addMarker adds marker image node into layer node." );  
     43 
     44        layer.markers = null; 
     45        layer.removeMarker(marker); 
     46        t.ok(true, "removing marker when no markers present does not script error"); 
     47 
    4348    } 
    4449    function test_99_Layer_Markers_destroy (t) {