Skip to content

Commit 2f44ca2

Browse files
[camera_android_camerax] Updates pigeon generation to prevent crash when objects call to Dart after a hot restart (#10571)
Fixes flutter/flutter#176451 ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
1 parent 338ecd3 commit 2f44ca2

File tree

4 files changed

+871
-1095
lines changed

4 files changed

+871
-1095
lines changed

packages/camera/camera_android_camerax/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.6.26+2
2+
3+
* Updates pigeon generation to prevent crash when objects call to Dart after a hot restart.
4+
15
## 0.6.26+1
26

37
* Bumps camerax_version from 1.5.1 to 1.5.2.

packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright 2013 The Flutter Authors
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
4-
// Autogenerated from Pigeon (v26.1.2), do not edit directly.
4+
// Autogenerated from Pigeon (v26.1.4), do not edit directly.
55
// See also: https://pub.dev/packages/pigeon
66
@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass")
77

@@ -2140,6 +2140,14 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP
21402140
Result.failure(
21412141
CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", "")))
21422142
return
2143+
} else if (!pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) {
2144+
callback(
2145+
Result.failure(
2146+
CameraXError(
2147+
"missing-instance-error",
2148+
"Callback to `Observer.onChanged` failed because native instance was not in the instance manager.",
2149+
"")))
2150+
return
21432151
}
21442152
val binaryMessenger = pigeonRegistrar.binaryMessenger
21452153
val codec = pigeonRegistrar.codec
@@ -2925,6 +2933,14 @@ abstract class PigeonApiSystemServicesManager(
29252933
Result.failure(
29262934
CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", "")))
29272935
return
2936+
} else if (!pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) {
2937+
callback(
2938+
Result.failure(
2939+
CameraXError(
2940+
"missing-instance-error",
2941+
"Callback to `SystemServicesManager.onCameraError` failed because native instance was not in the instance manager.",
2942+
"")))
2943+
return
29282944
}
29292945
val binaryMessenger = pigeonRegistrar.binaryMessenger
29302946
val codec = pigeonRegistrar.codec
@@ -3165,6 +3181,14 @@ abstract class PigeonApiDeviceOrientationManager(
31653181
Result.failure(
31663182
CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", "")))
31673183
return
3184+
} else if (!pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) {
3185+
callback(
3186+
Result.failure(
3187+
CameraXError(
3188+
"missing-instance-error",
3189+
"Callback to `DeviceOrientationManager.onDeviceOrientationChanged` failed because native instance was not in the instance manager.",
3190+
"")))
3191+
return
31683192
}
31693193
val binaryMessenger = pigeonRegistrar.binaryMessenger
31703194
val codec = pigeonRegistrar.codec
@@ -3882,6 +3906,14 @@ abstract class PigeonApiVideoRecordEventListener(
38823906
Result.failure(
38833907
CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", "")))
38843908
return
3909+
} else if (!pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) {
3910+
callback(
3911+
Result.failure(
3912+
CameraXError(
3913+
"missing-instance-error",
3914+
"Callback to `VideoRecordEventListener.onEvent` failed because native instance was not in the instance manager.",
3915+
"")))
3916+
return
38853917
}
38863918
val binaryMessenger = pigeonRegistrar.binaryMessenger
38873919
val codec = pigeonRegistrar.codec
@@ -5312,6 +5344,14 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP
53125344
Result.failure(
53135345
CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", "")))
53145346
return
5347+
} else if (!pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) {
5348+
callback(
5349+
Result.failure(
5350+
CameraXError(
5351+
"missing-instance-error",
5352+
"Callback to `Analyzer.analyze` failed because native instance was not in the instance manager.",
5353+
"")))
5354+
return
53155355
}
53165356
val binaryMessenger = pigeonRegistrar.binaryMessenger
53175357
val codec = pigeonRegistrar.codec

0 commit comments

Comments
 (0)