From 0cf0df775ccecbd891fd9e1790407ea5d984bfd3 Mon Sep 17 00:00:00 2001 From: Seungsoo Lee Date: Thu, 7 Nov 2024 19:29:12 +0900 Subject: [PATCH] [google_maps_flutter] Fix memory leak and map initialization issue When using a google map's addListener(), do not call the Javascript object directly. This causes a memory leak. Do: map.addListener('bounds_changed', (event) => { BoundChanged.postMessage('') }); Do not: map.addListener('bounds_changed', BoundChanged.postMessage); --- .../lib/src/google_maps_controller.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/google_maps_flutter/lib/src/google_maps_controller.dart b/packages/google_maps_flutter/lib/src/google_maps_controller.dart index 213756141..a96919be0 100644 --- a/packages/google_maps_flutter/lib/src/google_maps_controller.dart +++ b/packages/google_maps_flutter/lib/src/google_maps_controller.dart @@ -173,10 +173,10 @@ class GoogleMapsController { final String options = _createOptions(); final String command = ''' map = new google.maps.Map(document.getElementById('map'), $options); - map.addListener('bounds_changed', BoundChanged.postMessage); - map.addListener('idle', Idle.postMessage); - map.addListener('click', (event) => Click.postMessage(JSON.stringify(event))); - map.addListener('tilesloaded', Tilesloaded.postMessage); + map.addListener('bounds_changed', (event) => { BoundChanged.postMessage('') }); + map.addListener('idle', (event) => { Idle.postMessage('') }); + map.addListener('click', (event) => { Click.postMessage(JSON.stringify(event)) }); + map.addListener('tilesloaded', (evnet) => { Tilesloaded.postMessage('') }); let longPressTimeout; map.addListener('mousedown', (e) => {