Limit the PlatformView ID within the range of 32-bit integers. (#121203)

Limit the PlatformView ID within the range of 32-bit integers.
This commit is contained in:
Rulong Chen(陈汝龙) 2023-02-27 22:52:40 +08:00 committed by GitHub
parent fbae472fc3
commit a5c60f4128
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -44,7 +44,16 @@ class PlatformViewsRegistry {
/// ///
/// Typically a platform view identifier is passed to a platform view widget /// Typically a platform view identifier is passed to a platform view widget
/// which creates the platform view and manages its lifecycle. /// which creates the platform view and manages its lifecycle.
int getNextPlatformViewId() => _nextPlatformViewId++; int getNextPlatformViewId() {
// On the Android side, the interface exposed to users uses 32-bit integers.
// See https://github.com/flutter/engine/pull/39476 for more details.
// We can safely assume that a Flutter application will not require more
// than MAX_INT32 platform views during its lifetime.
const int MAX_INT32 = 0x7FFFFFFF;
assert(_nextPlatformViewId <= MAX_INT32);
return _nextPlatformViewId++;
}
} }
/// Callback signature for when a platform view was created. /// Callback signature for when a platform view was created.