diff options
| author | Christophe Matthieu <chm@odoo.com> | 2017-03-23 11:31:18 +0100 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2017-04-11 19:44:38 +0200 |
| commit | 749d10e8b55dce94828290d7e4d6b2b6f741e9bd (patch) | |
| tree | e53a705394d924c8e8655e890dc2a648fae54a7c /addons/web/static/src | |
| parent | dacb326695fae394825a19511996abf92a2707c7 (diff) | |
[FIX] web: avoid memory leak
Methods are bound on button but never release.
Diffstat (limited to 'addons/web/static/src')
3 files changed, 20 insertions, 0 deletions
diff --git a/addons/web/static/src/js/views/form/form_controller.js b/addons/web/static/src/js/views/form/form_controller.js index 940d27d386c..bf06c39034d 100644 --- a/addons/web/static/src/js/views/form/form_controller.js +++ b/addons/web/static/src/js/views/form/form_controller.js @@ -33,6 +33,15 @@ var FormController = BasicController.extend({ this.toolbar = params.toolbar; this.mode = params.mode; }, + /** + * @override + */ + destroy: function () { + if (this.$buttons) { + this.$buttons.find('*').off(); + } + this._super(); + }, //-------------------------------------------------------------------------- // Public diff --git a/addons/web/static/src/js/views/kanban/kanban_controller.js b/addons/web/static/src/js/views/kanban/kanban_controller.js index 420e848e5e4..c74f06d1de1 100644 --- a/addons/web/static/src/js/views/kanban/kanban_controller.js +++ b/addons/web/static/src/js/views/kanban/kanban_controller.js @@ -43,6 +43,11 @@ var KanbanController = BasicController.extend({ // true iff grouped by an m2o field and group_create action enabled this.create_column_enabled = false; }, + destroy: function () { + if (this.$buttons) { + this.$buttons.off(); + } + }, //-------------------------------------------------------------------------- // Public diff --git a/addons/web/static/src/js/views/list/list_controller.js b/addons/web/static/src/js/views/list/list_controller.js index b25b02b4513..713299c19ed 100644 --- a/addons/web/static/src/js/views/list/list_controller.js +++ b/addons/web/static/src/js/views/list/list_controller.js @@ -42,6 +42,12 @@ var ListController = BasicController.extend({ this.noLeaf = params.noLeaf; this.selectedRecords = []; // there is no selected record by default }, + destroy: function () { + if (this.$buttons) { + this.$buttons.find('*').off(); + } + this._super(); + }, //-------------------------------------------------------------------------- // Public |
