From e58ba687cd73385512ae6f091fb8be266f6f1ab6 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Wed, 5 Dec 2007 08:53:27 +0000 Subject: [PATCH] remove geometry components backwards - thanks for the catch flixo and review crschmidt (closes #1190). git-svn-id: http://svn.openlayers.org/trunk/openlayers@5347 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Geometry/Collection.js | 2 +- tests/Geometry/test_Collection.html | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/OpenLayers/Geometry/Collection.js b/lib/OpenLayers/Geometry/Collection.js index 2a7f85eb40..ccd061ab69 100644 --- a/lib/OpenLayers/Geometry/Collection.js +++ b/lib/OpenLayers/Geometry/Collection.js @@ -177,7 +177,7 @@ OpenLayers.Geometry.Collection = OpenLayers.Class(OpenLayers.Geometry, { if(!(components instanceof Array)) { components = [components]; } - for (var i = 0; i < components.length; i++) { + for(var i=components.length-1; i>=0; --i) { this.removeComponent(components[i]); } }, diff --git a/tests/Geometry/test_Collection.html b/tests/Geometry/test_Collection.html index 36d3e080ac..a51db0394d 100644 --- a/tests/Geometry/test_Collection.html +++ b/tests/Geometry/test_Collection.html @@ -89,7 +89,7 @@ } function test_04_Collection_removeComponents (t) { - t.plan( 4 ); + t.plan( 5 ); coll = new OpenLayers.Geometry.Collection(); point = new OpenLayers.Geometry.Point(0,0); coll.addComponents(point); @@ -100,6 +100,17 @@ bounds = coll.getBounds(); t.eq( bounds.left, 10, "left bound is 10 after removeComponent" ); t.eq( bounds.bottom, 10, "bottom bound is 10 after removeComponent" ); + + coll = new OpenLayers.Geometry.Collection(); + for(var i=0; i<5; ++i) { + coll.addComponents( + new OpenLayers.Geometry.Point(Math.random(), Math.random()) + ); + } + coll.removeComponents(coll.components); + t.eq(coll.components.length, 0, + "remove components even works with multiple components"); + } function test_06_Collection_calculateBounds(t) {