OpenLayers OpenLayers

Changeset 7941

Show
Ignore:
Timestamp:
09/03/08 15:16:29 (3 months ago)
Author:
tschaub
Message:

Allow layer.destroy to be called twice without failing for the vector layer. r=elemoine (closes #1697)

Files:

Legend:

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

    r7930 r7941  
    493493     */ 
    494494    removeFeatures: function(features, options) { 
     495        if(!features || features.length === 0) { 
     496            return; 
     497        } 
    495498        if (!(features instanceof Array)) { 
    496499            features = [features]; 
    497         } 
    498         if (features.length <= 0) { 
    499             return; 
    500500        } 
    501501 
     
    568568            features = this.features; 
    569569        } 
    570         this.removeFeatures(features, options); 
    571         for (var i = 0; i < features.length; i++) { 
    572             features[i].destroy(); 
     570        if(features) { 
     571            this.removeFeatures(features, options); 
     572            for(var i=features.length-1; i>=0; i--) { 
     573                features[i].destroy(); 
     574            } 
    573575        } 
    574576    }, 
  • trunk/openlayers/tests/Layer/Vector.html

    r7930 r7941  
    239239 
    240240    function test_Layer_Vector_destroy (t) { 
    241         t.plan(4);     
     241        t.plan(5);     
    242242 
    243243        var options = {protocol: new OpenLayers.Protocol(),  
     
    253253        t.eq(layer.protocol, null, "layer.protocol is null after destroy"); 
    254254        t.eq(layer.strategies, null, "layer.strategies is null after destroy"); 
     255         
     256        // test that we can call layer.destroy a second time without trouble 
     257        try { 
     258            layer.destroy(); 
     259            layer.destroy(); 
     260            t.ok(true, "layer.destroy called twice without any issues"); 
     261        } catch(err) { 
     262            t.fail("calling layer.destroy twice triggers exception: " + err + " in " + err.fileName + " line " + err.lineNumber); 
     263        } 
     264         
    255265    } 
    256266