From aaeaf2a563682f2f63196f924a842dcca42be8ef Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Tue, 07 Mar 2023 16:54:09 +0000 Subject: [PATCH] IWYU: libstdc++ unique_ptr cast from nullptr requires declaration of type fallback_linux_ui.cc returns a nullptr as a result of several calls returning a std::unique_ptr of a type that has not been declared and that's not allowed in libstdc++ implementation. Fix build errors: /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = ui::LinuxInputMethodContext]’: /usr/include/c++/12/bits/unique_ptr.h:396:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = ui::LinuxInputMethodContext; _Dp = std::default_delete]’ ../../ui/linux/fallback_linux_ui.cc:35:10: required from here /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::LinuxInputMethodContext’ 93 | static_assert(sizeof(_Tp)>0, | ^~~~~~~~~~~ /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = ui::NavButtonProvider]’: /usr/include/c++/12/bits/unique_ptr.h:396:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = ui::NavButtonProvider; _Dp = std::default_delete]’ ../../ui/linux/fallback_linux_ui.cc:133:10: required from here /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::NavButtonProvider’ Bug: 957519 Change-Id: I5e7f096003d8f5de8f5be36137ac4427799bf7a5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4310671 Reviewed-by: Thomas Anderson Commit-Queue: Thomas Anderson Cr-Commit-Position: refs/heads/main@{#1113983} --- diff --git a/ui/linux/BUILD.gn b/ui/linux/BUILD.gn index eb72461..8662261 100644 --- a/ui/linux/BUILD.gn +++ b/ui/linux/BUILD.gn @@ -52,6 +52,7 @@ deps = [ "//base", "//ui/base:buildflags", + "//ui/base/ime/linux:linux", "//ui/events:dom_keyboard_layout", "//ui/gfx", "//ui/native_theme", diff --git a/ui/linux/fallback_linux_ui.cc b/ui/linux/fallback_linux_ui.cc index ee3e7b9..5f5abee 100644 --- a/ui/linux/fallback_linux_ui.cc +++ b/ui/linux/fallback_linux_ui.cc @@ -5,11 +5,13 @@ #include "ui/linux/fallback_linux_ui.h" #include "base/time/time.h" +#include "ui/base/ime/linux/linux_input_method_context.h" #include "ui/events/keycodes/dom/dom_keyboard_layout_map.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/geometry/size.h" #include "ui/gfx/image/image.h" #include "ui/gfx/platform_font.h" +#include "ui/linux/nav_button_provider.h" #include "ui/native_theme/native_theme.h" #include "ui/shell_dialogs/select_file_policy.h" #include "ui/views/controls/textfield/textfield.h"