From dc491f9114f9da1b4888844e7a2a633f20d378ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 10 Oct 2012 20:24:18 +0200 Subject: [PATCH 1/7] disposeInternal implementation for ol.Map --- src/ol/map.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/ol/map.js b/src/ol/map.js index fe147e1541..42dd95b574 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -290,6 +290,16 @@ ol.Map.prototype.canRotate = function() { }; +/** + * + * @inheritDoc + */ +ol.Map.prototype.disposeInternal = function() { + goog.base(this, 'disposeInternal'); + goog.dom.removeNode(this.viewport_); +}; + + /** * @param {ol.Extent} extent Extent. */ From 655e04368bb9cb2309359b02fbd50a40a1ca7167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 10 Oct 2012 20:24:32 +0200 Subject: [PATCH 2/7] disposeInternal implementation for ol.control.Control --- src/ol/control/control.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ol/control/control.js b/src/ol/control/control.js index a640b2beca..5dda618613 100644 --- a/src/ol/control/control.js +++ b/src/ol/control/control.js @@ -49,6 +49,14 @@ ol.control.Control = function(controlOptions) { goog.inherits(ol.control.Control, goog.Disposable); +/** + * @inheritDoc + */ +ol.control.Control.prototype.disposeInternal = function() { + goog.dom.removeNode(this.element); +}; + + /** * @return {ol.Map} Map. */ From fbc810264bcec5d6ca2b42b5981c26b6ba0265c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 10 Oct 2012 20:25:53 +0200 Subject: [PATCH 3/7] goog.array.forEach does not accept null values --- src/ol/mapbrowserevent.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ol/mapbrowserevent.js b/src/ol/mapbrowserevent.js index b5b8d49481..a2d241eda9 100644 --- a/src/ol/mapbrowserevent.js +++ b/src/ol/mapbrowserevent.js @@ -285,9 +285,10 @@ ol.MapBrowserEventHandler.prototype.disposeInternal = function() { this.handleUp_, false, this); goog.events.unlisten(element, goog.events.EventType.CLICK, this.click_, false, this); - goog.asserts.assert(goog.isDef(this.dragListenerKeys_)); - goog.array.forEach(this.dragListenerKeys_, goog.events.unlistenByKey); - this.dragListenerKeys_ = null; + if (!goog.isNull(this.dragListenerKeys_)) { + goog.array.forEach(this.dragListenerKeys_, goog.events.unlistenByKey); + this.dragListenerKeys_ = null; + } }; From 0b411ad69c5b630a68fd70199cd8022c332ec5b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 11 Oct 2012 17:46:22 +0200 Subject: [PATCH 4/7] Have disposeInternal call parent --- src/ol/control/control.js | 1 + src/ol/map.js | 2 +- src/ol/mapbrowserevent.js | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ol/control/control.js b/src/ol/control/control.js index 5dda618613..ad7ab15f7e 100644 --- a/src/ol/control/control.js +++ b/src/ol/control/control.js @@ -54,6 +54,7 @@ goog.inherits(ol.control.Control, goog.Disposable); */ ol.control.Control.prototype.disposeInternal = function() { goog.dom.removeNode(this.element); + goog.base(this, 'disposeInternal'); }; diff --git a/src/ol/map.js b/src/ol/map.js index 42dd95b574..9ed3f64a5f 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -295,8 +295,8 @@ ol.Map.prototype.canRotate = function() { * @inheritDoc */ ol.Map.prototype.disposeInternal = function() { - goog.base(this, 'disposeInternal'); goog.dom.removeNode(this.viewport_); + goog.base(this, 'disposeInternal'); }; diff --git a/src/ol/mapbrowserevent.js b/src/ol/mapbrowserevent.js index a2d241eda9..63b3c956cd 100644 --- a/src/ol/mapbrowserevent.js +++ b/src/ol/mapbrowserevent.js @@ -289,6 +289,7 @@ ol.MapBrowserEventHandler.prototype.disposeInternal = function() { goog.array.forEach(this.dragListenerKeys_, goog.events.unlistenByKey); this.dragListenerKeys_ = null; } + goog.base(this, 'disposeInternal'); }; From 2a76a23b6f244af016038ad4c0abe4733fd4655f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 11 Oct 2012 17:46:47 +0200 Subject: [PATCH 5/7] Add tests for ol.control.Control --- test/ol.html | 2 ++ test/spec/ol/control/control.test.js | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 test/spec/ol/control/control.test.js diff --git a/test/ol.html b/test/ol.html index d504a2059c..1d438b53cd 100644 --- a/test/ol.html +++ b/test/ol.html @@ -83,6 +83,7 @@ +