[camera] Fix camera memory leak on IOS (#1745)
Needed to unregister the stream handler when disposing of the camera
Per the flutter documentation, the stream handler should be unregistered using setStreamHandler with nil.
https://api.flutter.dev/objcdoc/Classes/FlutterEventChannel.html#/c:objc(cs)FlutterEventChannel(im)setStreamHandler:
diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md
index c096a9a..2d09af5 100644
--- a/packages/camera/CHANGELOG.md
+++ b/packages/camera/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.5.2+2
+
+* Fix memory leak related to not unregistering stream handler in FlutterEventChannel when disposing camera.
+
## 0.5.2+1
* Fix bug that prevented video recording with audio.
diff --git a/packages/camera/ios/Classes/CameraPlugin.m b/packages/camera/ios/Classes/CameraPlugin.m
index 7bbd825..4c00192 100644
--- a/packages/camera/ios/Classes/CameraPlugin.m
+++ b/packages/camera/ios/Classes/CameraPlugin.m
@@ -456,6 +456,8 @@
- (FlutterError *_Nullable)onCancelWithArguments:(id _Nullable)arguments {
_eventSink = nil;
+ // need to unregister stream handler when disposing the camera
+ [_eventChannel setStreamHandler:nil];
return nil;
}
diff --git a/packages/camera/pubspec.yaml b/packages/camera/pubspec.yaml
index 9aab9b9..a7e65c7 100644
--- a/packages/camera/pubspec.yaml
+++ b/packages/camera/pubspec.yaml
@@ -2,8 +2,8 @@
description: A Flutter plugin for getting information about and controlling the
camera on Android and iOS. Supports previewing the camera feed, capturing images, capturing video,
and streaming image buffers to dart.
-version: 0.5.2+1
-publish_to: none
+version: 0.5.2+2
+
authors:
- Flutter Team <flutter-dev@googlegroups.com>
- Luigi Agosti <luigi@tengio.com>