summaryrefslogtreecommitdiff
path: root/www-client/chromium/files/chromium-112-libstdc++-1.patch
blob: 36a1f94252c314de9453ab4398a3ae2b5fb9b875 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
From aaeaf2a563682f2f63196f924a842dcca42be8ef Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
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::LinuxInputMethodContext>]’
    ../../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::NavButtonProvider>]’
    ../../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 <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
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"