Commit small change to destroy events objects when destroying objects with

events. This removes a number of minor memory leaks with creating/destroying
popups, layers, features, and markers.


git-svn-id: http://svn.openlayers.org/trunk/openlayers@2894 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
crschmidt
2007-03-26 00:50:31 +00:00
parent eb13974c5e
commit 8e3856b4ac
5 changed files with 15 additions and 3 deletions

View File

@@ -59,7 +59,11 @@ OpenLayers.Feature.prototype= {
}
}
if (this.events) {
this.events.destroy();
}
this.events = null;
this.layer = null;
this.id = null;
this.lonlat = null;

View File

@@ -154,6 +154,8 @@ OpenLayers.Layer.prototype = {
this.name = null;
this.div = null;
this.options = null;
this.events.destroy();
this.events = null;
},

View File

@@ -47,7 +47,10 @@ OpenLayers.Marker.prototype = {
destroy: function() {
this.map = null;
this.events.destroy();
this.events = null;
if (this.icon != null) {
this.icon.destroy();
this.icon = null;

View File

@@ -117,9 +117,11 @@ OpenLayers.Popup.prototype = {
destroy: function() {
if (this.map != null) {
this.map.removePopup(this);
this.map = null;
}
this.events.destroy();
this.events = null;
this.div = null;
this.map = null;
},
/**

View File

@@ -212,7 +212,8 @@
t.eq(OpenLayers.Event.observers.length,
start + OpenLayers.Events.prototype.BROWSER_EVENTS.length + 1,
"construction increases the number of event observers");
events = events.destroy();
events.destroy();
events = null;
t.eq(OpenLayers.Event.observers.length, start,
"destruction restores the number of event observers");
}