diff --git a/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.cc b/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.cc index 1b8a3cdc5e6..4893eaa9cf5 100644 --- a/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.cc +++ b/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.cc @@ -44,12 +44,6 @@ PlatformViewAndroidDelegate::PlatformViewAndroidDelegate( void PlatformViewAndroidDelegate::UpdateSemantics( const flutter::SemanticsNodeUpdates& update, const flutter::CustomAccessibilityActionUpdates& actions) { - constexpr size_t kBytesPerNode = 49 * sizeof(int32_t); - constexpr size_t kBytesPerChild = sizeof(int32_t); - constexpr size_t kBytesPerCustomAction = sizeof(int32_t); - constexpr size_t kBytesPerAction = 4 * sizeof(int32_t); - constexpr size_t kBytesPerStringAttribute = 4 * sizeof(int32_t); - { size_t num_bytes = 0; for (const auto& value : update) { diff --git a/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.h b/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.h index 0a9d2a39f80..5e2b59f70e2 100644 --- a/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.h +++ b/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate.h @@ -16,6 +16,11 @@ namespace flutter { class PlatformViewAndroidDelegate { public: + static constexpr size_t kBytesPerNode = 49 * sizeof(int32_t); + static constexpr size_t kBytesPerChild = sizeof(int32_t); + static constexpr size_t kBytesPerCustomAction = sizeof(int32_t); + static constexpr size_t kBytesPerAction = 4 * sizeof(int32_t); + static constexpr size_t kBytesPerStringAttribute = 4 * sizeof(int32_t); explicit PlatformViewAndroidDelegate( std::shared_ptr jni_facade); void UpdateSemantics( diff --git a/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate_unittests.cc b/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate_unittests.cc index 33039dcf976..687c7b354e0 100644 --- a/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate_unittests.cc +++ b/engine/src/flutter/shell/platform/android/platform_view_android_delegate/platform_view_android_delegate_unittests.cc @@ -23,7 +23,8 @@ TEST(PlatformViewShell, UpdateSemanticsDoesFlutterViewUpdateSemantics) { node0.tooltip = "tooltip"; update.insert(std::make_pair(0, node0)); - std::vector expected_buffer(196); + std::vector expected_buffer( + PlatformViewAndroidDelegate::kBytesPerNode); std::vector> expected_string_attribute_args(0); size_t position = 0; int32_t* buffer_int32 = reinterpret_cast(&expected_buffer[0]); @@ -87,7 +88,8 @@ TEST(PlatformViewShell, UpdateSemanticsDoesUpdatelinkUrl) { node0.linkUrl = "url"; update.insert(std::make_pair(0, node0)); - std::vector expected_buffer(196); + std::vector expected_buffer( + PlatformViewAndroidDelegate::kBytesPerNode); std::vector> expected_string_attribute_args(0); size_t position = 0; int32_t* buffer_int32 = reinterpret_cast(&expected_buffer[0]); @@ -165,7 +167,10 @@ TEST(PlatformViewShell, node0.hintAttributes.push_back(locale_attribute); update.insert(std::make_pair(0, node0)); - std::vector expected_buffer(228); + std::vector expected_buffer( + PlatformViewAndroidDelegate::kBytesPerNode + + // 1 label attribute + 1 hint attribute. + 2 * PlatformViewAndroidDelegate::kBytesPerStringAttribute); std::vector> expected_string_attribute_args; size_t position = 0; int32_t* buffer_int32 = reinterpret_cast(&expected_buffer[0]); @@ -241,7 +246,8 @@ TEST(PlatformViewShell, action0.hint = "hint"; actions.insert(std::make_pair(0, action0)); - std::vector expected_actions_buffer(16); + std::vector expected_actions_buffer( + PlatformViewAndroidDelegate::kBytesPerAction); int32_t* actions_buffer_int32 = reinterpret_cast(&expected_actions_buffer[0]); std::vector expected_action_strings;